I have a Listview with CustomVisualItem formatting in IconView. When the directional keys are tapped or an item is clicked, the SelectItemChanged event is triggered but the selection highlight does not follow. Since CustomVisualItems are used, do I need to break out the crayons in VisualItemFormatting?
The form contains a RadListView and a RadLabel to display a result.
Thanks!public RadForm1()
{
InitializeComponent();
this.radListView1.EnableKineticScrolling = true;
this.radListView1.KeyboardSearchEnabled = true;
this.radListView1.ViewType = Telerik.WinControls.UI.ListViewType.IconsView;
this.radListView1.SelectedItemChanged += new System.EventHandler(this.radListView_SelectedItemChanged);
this.radListView1.VisualItemCreating += new Telerik.WinControls.UI.ListViewVisualItemCreatingEventHandler(this.radListView1_VisualItemCreating);
this.radListView1.DataSource = JunkData();
}
private void radListView1_VisualItemCreating(object sender, Telerik.WinControls.UI.ListViewVisualItemCreatingEventArgs e)
{
e.VisualItem = new CustomIconVisualItem();
}
private void radListView_SelectedItemChanged(object sender, EventArgs e)
{
RadListViewElement element = sender as RadListViewElement;
ListViewDataItem item = element.SelectedItem;
if (item == null) return;
DataRowView dataRow = (DataRowView)item.DataBoundItem;
if (dataRow == null) return;
DataRow row = dataRow.Row;
radLabel1.Text = row["Title"].ToString();
}
private DataTable JunkData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Title", typeof(string));
dt.Rows.Add("T1");
dt.Rows.Add("T2");
dt.Rows.Add("T3");
return dt;
}
class CustomIconVisualItem : IconListViewVisualItem
{
private LightVisualElement titleElement;
private StackLayoutPanel stackLayout;
protected override void CreateChildElements()
{
base.CreateChildElements();
stackLayout = new StackLayoutPanel();
stackLayout.Orientation = System.Windows.Forms.Orientation.Vertical;
stackLayout.AutoSize = true;
titleElement = new LightVisualElement();
titleElement.NotifyParentOnMouseInput = true;
stackLayout.Children.Add(titleElement);
this.Children.Add(stackLayout);
}
protected override void SynchronizeProperties()
{
this.titleElement.Text = this.Data["Title"].ToString();
}
protected override Type ThemeEffectiveType
{
get
{
return typeof(SimpleListViewVisualItem);
}
}
}
It seems that after the Validation Provider kicks in on a control - and sets focus to it and displays the 'error' message....
That it keeps the focus on that control and the user cannot click on a different control on the form.
So, for example.
Let's say there are 2 radio buttons - each radio button causes a dropdown to load certain records
The user clicks on the Dropdown - then realizes they needed to click on the 2nd radio button first.
But now, the validation provider won't let them click the 2nd radio button because it maintains focus on the dropdown.
Is there a way to 'release' the focus so that the user can click on the 2nd radio button?
I have a form with two TextBox controls with ShowEmbeddedLabel and RepositionEmbeddedLabel enabled. The TextBox font size is 18P and the Embedded Label sizes are 18P and 10P.
When running, the first textbox with the larger EL looks and works fine. The textbox with the 10P EL, not so much. The EL rests in the center of the control, rather than the bottom. What property have I overlooked to have the 10P EL align to the bottom of the control rather than hover in the center?
I've tried disabling TextBoxElement.AutoSize and setting its Size, but that really confuses the renderer. Messing the the LightVisualElements, didn't help either. Resizing the control almost works, but the descenders, the 'tails', of letters are clipped then the EL is bottom aligned.
Thanks!
public RadForm1() { InitializeComponent(); radTextBox1 = new Telerik.WinControls.UI.RadTextBox(); radTextBox1.Font = new System.Drawing.Font("Segoe UI", 18F); radTextBox1.Location = new System.Drawing.Point(10, 10); radTextBox1.Size = new System.Drawing.Size(300, 80); radTextBox1.EmbeddedLabelText = "RTB1: 18F x 18F"; radTextBox1.ShowEmbeddedLabel = true; this.Controls.Add(this.radTextBox1); radTextBox1.TextBoxElement.Font = new System.Drawing.Font("Segoe UI", 18F); radTextBox2 = new Telerik.WinControls.UI.RadTextBox(); radTextBox2.Font = new System.Drawing.Font("Segoe UI", 18F); radTextBox2.Location = new System.Drawing.Point(10, 90); radTextBox2.Size = new System.Drawing.Size(300, 80); radTextBox2.EmbeddedLabelText = "RTB2: 18F x 10F"; radTextBox2.ShowEmbeddedLabel = true; this.Controls.Add(this.radTextBox2); radTextBox2.TextBoxElement.Font = new System.Drawing.Font("Segoe UI", 10F); }
I have a rad data entry in a form that when I change the data through it's bindings it doesn't clear all the fields. Usually check boxes and dates or dropdowns leave their current selected value if the new data set has null values.
!. is there a way to fix that?
2. If not how can I loop through all the controls in the rad data entry to clear all the controls?
Below only shows 4 controls instead of the many that textboxes, etc. *Rde is the name of the rad data entry item
foreach (Control c in Rde.Controls)
{
MessageBox.Show(c.Name);
}
Dear Team,
I am trying to create a content control structure with radrichtexteditor control with the below structure :
______________________________________________________
Description: (not editable)
editable content here
Impressions: (not editable)
editable content here
Findings:(not editable)
editable content here
Remarks: (not editable)
editable content here
______________________________________________________
Below are the issues I am facing
1. I try inserting a content control but not working using this documentation : Working with Content Controls | RadRichTextEditor | Telerik UI for WinForms
2. RadRichTextRibbonbar Developer Tab not visible
3. I also tried to load xaml file from the "structure content example application" to new created richtexteditor control. also not working.
Kindly provide me with a sample project.
Thank You.
Basically, I've created a custom list view item, there is no issues by default, but when I add an element to the item's element, when you scroll the item out of bounds it will add the element that was in the intended element into another element and remove it from the original element it was added to. How can I fix this from happening?
EDIT: This happens when item height is NOT arbitrary too.
EDIT 2: I have messed around, now I am no longer adding any elements (as a test), all I am doing is changing the background color of the element, when the item goes out of bounds another item in another expanded group will be the same background color and the original item will lose the background color. There is no way for me to fix this from what I can tell.
Hi there,
Using control version 2021.2.615
VS2019 16.10.3
I have some code using a CommandBar and CommandBarStrips as below:
//
// CommandBar
//
this.CommandBar.Dock = System.Windows.Forms.DockStyle.Top;
this.CommandBar.Location = new System.Drawing.Point(0, 25);
this.CommandBar.Name = "CommandBar";
this.CommandBar.Rows.AddRange(new Telerik.WinControls.UI.CommandBarRowElement[] {
this.CommandBarRow});
this.CommandBar.Size = new System.Drawing.Size(1241, 31);
this.CommandBar.TabIndex = 4;
this.CommandBar.ThemeName = "FluentDark";
//
// CommandBarRow
//
this.CommandBarRow.MinSize = new System.Drawing.Size(25, 25);
this.CommandBarRow.Name = "CommandBarRow";
this.CommandBarRow.Strips.AddRange(new Telerik.WinControls.UI.CommandBarStripElement[] {
this.CommandBarToolStrip,
this.CommandBarModelStrip});
//
// CommandBarToolStrip
//
this.CommandBarToolStrip.Alignment = System.Drawing.ContentAlignment.TopCenter;
this.CommandBarToolStrip.AutoSize = true;
this.CommandBarToolStrip.DisplayName = "commandBarStripElement1";
this.CommandBarToolStrip.EnableDragging = false;
this.CommandBarToolStrip.Name = "CommandBarToolStrip";
//
//
//
this.CommandBarToolStrip.OverflowButton.Enabled = false;
this.CommandBarToolStrip.OverflowButton.Visibility = Telerik.WinControls.ElementVisibility.Hidden;
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBarToolStrip.GetChildAt(2))).Enabled = false;
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBarToolStrip.GetChildAt(2))).Visibility = Telerik.WinControls.ElementVisibility.Hidden;
//
// CommandBarModelStrip
//
this.CommandBarModelStrip.Alignment = System.Drawing.ContentAlignment.TopRight;
this.CommandBarModelStrip.AutoSize = true;
this.CommandBarModelStrip.DisplayName = "commandBarStripElement1";
this.CommandBarModelStrip.Items.AddRange(new Telerik.WinControls.UI.RadCommandBarBaseItem[] {
this.lblCurrModel,
this.CurrentModelList});
this.CommandBarModelStrip.Name = "CommandBarModelStrip";
//
//
//
this.CommandBarModelStrip.OverflowButton.Enabled = false;
this.CommandBarModelStrip.OverflowButton.Visibility = Telerik.WinControls.ElementVisibility.Hidden;
this.CommandBarModelStrip.Text = "";
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBarModelStrip.GetChildAt(2))).Enabled = false;
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBarModelStrip.GetChildAt(2))).Visibility = Telerik.WinControls.ElementVisibility.Hidden;
//
// lblCurrModel
//
this.lblCurrModel.Alignment = System.Drawing.ContentAlignment.MiddleLeft;
this.lblCurrModel.DisplayName = "commandBarLabel1";
this.lblCurrModel.Name = "lblCurrModel";
this.lblCurrModel.Text = "Current Model : ";
//
// CurrentModelList
//
this.CurrentModelList.AutoEllipsis = true;
this.CurrentModelList.AutoSize = false;
this.CurrentModelList.Bounds = new System.Drawing.Rectangle(0, 0, 300, 24);
this.CurrentModelList.DisplayName = "commandBarDropDownList1";
this.CurrentModelList.DropDownAnimationEnabled = true;
this.CurrentModelList.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList;
this.CurrentModelList.MaxDropDownItems = 0;
this.CurrentModelList.Name = "CurrentModelList";
this.CurrentModelList.Text = "";
this.CurrentModelList.SelectedIndexChanged += new Telerik.WinControls.UI.Data.PositionChangedEventHandler(this.CurrentModelList_SelectedIndexChanged);
The above code compiles and runs with no issue.
If I open the designer for this form, then the above code is automatically replaced by the code below:
//
// CommandBar
//
this.CommandBar.Dock = System.Windows.Forms.DockStyle.Top;
this.CommandBar.Location = new System.Drawing.Point(0, 25);
this.CommandBar.Name = "CommandBar";
this.CommandBar.Size = new System.Drawing.Size(1241, 31);
this.CommandBar.TabIndex = 4;
this.CommandBar.ThemeName = "FluentDark";
((Telerik.WinControls.UI.CommandBarRowElement)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0))).Name = "CommandBarRow";
((Telerik.WinControls.UI.CommandBarRowElement)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0))).MinSize = new System.Drawing.Size(25, 25);
((Telerik.WinControls.UI.CommandBarStripElement)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(0))).Alignment = System.Drawing.ContentAlignment.TopCenter;
((Telerik.WinControls.UI.CommandBarStripElement)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(0))).Name = "CommandBarToolStrip";
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(2))).Enabled = false;
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(2))).Visibility = Telerik.WinControls.ElementVisibility.Hidden;
((Telerik.WinControls.UI.CommandBarStripElement)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1))).Alignment = System.Drawing.ContentAlignment.TopRight;
((Telerik.WinControls.UI.CommandBarStripElement)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1))).Name = "CommandBarModelStrip";
((Telerik.WinControls.UI.CommandBarLabel)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).Text = "Current Model : ";
((Telerik.WinControls.UI.CommandBarLabel)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).Alignment = System.Drawing.ContentAlignment.MiddleLeft;
((Telerik.WinControls.UI.CommandBarLabel)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(0))).Name = "lblCurrModel";
((Telerik.WinControls.UI.CommandBarDropDownList)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).AutoSize = false;
((Telerik.WinControls.UI.CommandBarDropDownList)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(1).GetChildAt(1))).Name = "CurrentModelList";
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(2))).Enabled = false;
((Telerik.WinControls.UI.RadCommandBarOverflowButton)(CommandBar.GetChildAt(0).GetChildAt(0).GetChildAt(0).GetChildAt(1).GetChildAt(2))).Visibility = Telerik.WinControls.ElementVisibility.Hidden;
//
This code compiles but on running the first line containing all the .GetChildAt calls throws IndexOutOfRange.
Sometimes it deletes the code completely, leaving just this:
//
// CommandBar
//
this.CommandBar.Dock = System.Windows.Forms.DockStyle.Top;
this.CommandBar.Location = new System.Drawing.Point(0, 25);
this.CommandBar.Name = "CommandBar";
this.CommandBar.Size = new System.Drawing.Size(1241, 30);
this.CommandBar.TabIndex = 4;
this.CommandBar.ThemeName = "FluentDark";
Any idea what's happening here?
Many thanks,
John.
This is not a question, but a help for my future me!
When you load a layout your RadTitleElement miss events, you cannot directly set .Click event, for example, on the RadTitleElement object memory var.
You need to find out the element and set the event.
So the code below shows how to do it.
void LoadLayout(RadPanorama panorama, string userFileConfig)
{
panorama.LoadLayout(fileUserConfig);
Fire("radTileElement1").click += (ss,ee) => DoSomething();
Fire("myCustomElementName").click += DoSomething2();
//....
}
#if (DEBUG)
private string missingBlocks { get; set; } = "";
#endif
private RadTileElement Fire(string name)
{
for (var n = 0; n < radPanorama1.Groups.Count(); n++)
{
var grp = (TileGroupElement)radPanorama1.Groups[n];
foreach (RadTileElement item in grp.Items)
{
if (item.Name.IsEquals(name)) return item;
}
}
#if (DEBUG)
missingBlocks += ";" + name;
// This guide you if goes wrong any .Name property
System.Diagnostics.Debug.WriteLine(missingBlocks);
#endif
return new RadTileElement();
}
How use it?
Any were you like restore a layout:
LoadLayout(radPanorama1, mySavedLayoutFile);
#jefferson2020
Good morning
Please I would like to know if it is possible to set a shortcut
to activate the focus on a RadGridView, and then move between the lines with the keyboard arrows.
Thank you
Fabrizio