.net Ultrawintree节点中的绑定下拉列表
我需要在.net Ultrawintree节点中的绑定下拉列表,.net,vb.net,treeview,infragistics,.net,Vb.net,Treeview,Infragistics,我需要在Ultrawintree节点中绑定一个下拉列表。当用户双击节点的单元格时,它应该是可编辑的,因此我需要在下拉列表中显示一些值。以便用户可以选择值并保存/更新 //代码 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim columnSet As UltraTreeColumnSet = Me.ult
Ultrawintree
节点中绑定一个下拉列表。当用户双击节点的单元格时,它应该是可编辑的,因此我需要在下拉列表中显示一些值。以便用户可以选择值并保存/更新
//代码
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim columnSet As UltraTreeColumnSet = Me.ultraTree1.ColumnSettings.ColumnSets(0)
' Use the ActiveCellAppearance to bring attention to the cell
' with the input focus
columnSet.ActiveCellAppearance.BackColor = Color.Red
columnSet.ActiveCellAppearance.ForeColor = Color.White
' Set AllowCellEdit to 'ActivateOnly' so that clicking a cell does
' not put in into edit mode immediately
columnSet.AllowCellEdit = AllowCellEdit.Full
' Enable tooltips for cells whose value is not fully visible
columnSet.TipStyleCell = TipStyleCell.Show
End Sub
因此,当点击按钮时,单元格是完全可编辑的。但我需要在单元格中绑定一个下拉列表
。可能吗
我该怎么做
注意:我正在使用Infragistics版本12.1有不同的方法来解决此任务。您可以尝试使用UltraTree节点的EditorComponent项目。通过这种方式,您可以为节点分配一个UltraComboEditor控件,该控件将显示您的下拉列表值。例如:
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
ultraCombo1.DataSource = dt;
ultraCombo1.DisplayMember = "Y";
ultraCombo1.ValueMember = "Y";
this.ultraTree1.NodeLevelOverrides[0].EditorComponent = ultraCombo1;
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
UltraControlContainerEditor ucc = new Infragistics.Win.UltraWinEditors.UltraControlContainerEditor();
UltraGrid uc = new UltraGrid();
UltraGrid uc2 = new UltraGrid();
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
uc2.DataSource = dt;
uc.DataSource = dt;
ucc.RenderingControl = uc2;
ucc.EditingControl = uc;
this.ultraTree1.NodeLevelOverrides[1].EditorComponent = ucc;
如果您使用的是UltraControlContainerEditor,可能会有更复杂、更有趣的方法。下面是我们在UltraTree节点中实现网格的小示例。例如:
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
ultraCombo1.DataSource = dt;
ultraCombo1.DisplayMember = "Y";
ultraCombo1.ValueMember = "Y";
this.ultraTree1.NodeLevelOverrides[0].EditorComponent = ultraCombo1;
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
UltraControlContainerEditor ucc = new Infragistics.Win.UltraWinEditors.UltraControlContainerEditor();
UltraGrid uc = new UltraGrid();
UltraGrid uc2 = new UltraGrid();
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
uc2.DataSource = dt;
uc.DataSource = dt;
ucc.RenderingControl = uc2;
ucc.EditingControl = uc;
this.ultraTree1.NodeLevelOverrides[1].EditorComponent = ucc;
请查看屏幕截图以查看结果
解决这项任务有不同的方法。您可以尝试使用UltraTree节点的EditorComponent项目。通过这种方式,您可以为节点分配一个UltraComboEditor控件,该控件将显示您的下拉列表值。例如:
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
ultraCombo1.DataSource = dt;
ultraCombo1.DisplayMember = "Y";
ultraCombo1.ValueMember = "Y";
this.ultraTree1.NodeLevelOverrides[0].EditorComponent = ultraCombo1;
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
UltraControlContainerEditor ucc = new Infragistics.Win.UltraWinEditors.UltraControlContainerEditor();
UltraGrid uc = new UltraGrid();
UltraGrid uc2 = new UltraGrid();
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
uc2.DataSource = dt;
uc.DataSource = dt;
ucc.RenderingControl = uc2;
ucc.EditingControl = uc;
this.ultraTree1.NodeLevelOverrides[1].EditorComponent = ucc;
如果您使用的是UltraControlContainerEditor,可能会有更复杂、更有趣的方法。下面是我们在UltraTree节点中实现网格的小示例。例如:
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
ultraCombo1.DataSource = dt;
ultraCombo1.DisplayMember = "Y";
ultraCombo1.ValueMember = "Y";
this.ultraTree1.NodeLevelOverrides[0].EditorComponent = ultraCombo1;
this.ultraTree1.Override.ShowEditorButtons = ShowEditorButtons.Always;
this.ultraTree1.Override.LabelEdit = Infragistics.Win.DefaultableBoolean.True;
this.ultraTree1.Override.UseEditor = DefaultableBoolean.True;
UltraControlContainerEditor ucc = new Infragistics.Win.UltraWinEditors.UltraControlContainerEditor();
UltraGrid uc = new UltraGrid();
UltraGrid uc2 = new UltraGrid();
DataTable dt = new DataTable("Tabl");
dt.Columns.Add("X", typeof(Boolean));
dt.Columns.Add("Y", typeof(String));
dt.Rows.Add(true, "Test A");
dt.Rows.Add(false, "Test B");
dt.Rows.Add(false, "Test C");
dt.Rows.Add(true, "Test D");
uc2.DataSource = dt;
uc.DataSource = dt;
ucc.RenderingControl = uc2;
ucc.EditingControl = uc;
this.ultraTree1.NodeLevelOverrides[1].EditorComponent = ucc;
请查看屏幕截图以查看结果