Hi ,
I create custom cell in gridview . My code :
public class RadioButtonCellElement : GridDataCellElement
{
private RadRadioButtonElement radioButtonElement1;
private RadRadioButtonElement radioButtonElement2;
private RadRadioButtonElement radioButtonElement3;
private RadTextBoxEditorElement customText;
public RadioButtonCellElement(GridViewColumn column, GridRowElement row)
: base(column, row)
{
}
protected override void CreateChildElements()
{
base.CreateChildElements();
radioButtonElement1 = new RadRadioButtonElement();
radioButtonElement1.Margin = new Padding(0, 2, 0, 0);
radioButtonElement1.MinSize = new Size(50, 20);
radioButtonElement1.Text = "0.1";
radioButtonElement2 = new RadRadioButtonElement();
radioButtonElement2.Margin = new Padding(0, 2, 0, 0);
radioButtonElement2.MinSize = new Size(50, 20);
radioButtonElement2.Text = "0.2";
radioButtonElement3 = new RadRadioButtonElement();
radioButtonElement3.Margin = new Padding(0, 2, 0, 0);
radioButtonElement3.MinSize = new Size(80, 20);
radioButtonElement3.Text = "Custom";
customText = new RadTextBoxEditorElement();
//customText.Enabled = false;
customText.Size = new Size(10, 20);
this.Children.Add(radioButtonElement1);
this.Children.Add(radioButtonElement2);
this.Children.Add(radioButtonElement3);
this.Children.Add(customText);
radioButtonElement1.MouseDown += new MouseEventHandler(radioButtonElement1_MouseDown);
radioButtonElement2.MouseDown += new MouseEventHandler(radioButtonElement2_MouseDown);
radioButtonElement3.MouseDown += new MouseEventHandler(radioButtonElement3_MouseDown);
}
protected override void DisposeManagedResources()
{
radioButtonElement1.MouseDown -= new MouseEventHandler(radioButtonElement1_MouseDown);
radioButtonElement2.MouseDown -= new MouseEventHandler(radioButtonElement2_MouseDown);
radioButtonElement3.MouseDown -= new MouseEventHandler(radioButtonElement3_MouseDown);
base.DisposeManagedResources();
}
protected override SizeF ArrangeOverride(SizeF finalSize)
{
if (this.Children.Count == 4)
{
this.Children[0].Arrange(new RectangleF(0, 0, 50, 20));
this.Children[1].Arrange(new RectangleF(55, 0, 50, 20));
this.Children[2].Arrange(new RectangleF(110, 0, 20, 20));
this.Children[3].Arrange(new RectangleF(180, 0, 50, finalSize.Height));
this.Children[3].Alignment = ContentAlignment.MiddleCenter;
}
return finalSize;
}
public override void Initialize(GridViewColumn column, GridRowElement row)
{
base.Initialize(column, row);
((RadioPrimitive)radioButtonElement1.Children[1].Children[1].Children[0]).BackColor2 = Color.Red;
((RadioPrimitive)radioButtonElement2.Children[1].Children[1].Children[0]).BackColor2 = Color.Blue;
((RadioPrimitive)radioButtonElement3.Children[1].Children[1].Children[0]).BackColor2 = Color.Green;
}
}
// Add Labor Time column
RadioButtonColumn column = new RadioButtonColumn("LaborTime");
column.HeaderText = "Labor Time";
column.Width = 400;
this.gvLaborGuide.Columns.Add(column);
It it working, but when i scroll , it has problem.
Please look at the link:
https://www.screencast.com/t/mVJdsfrk