我尝试使用停靠的ToolStrip创建自定义TreeView控件,该控件将包含4个按钮(添加/删除Root,添加/删除子项)。
我的控件如下:
public partial class MyTreeView : TreeView
{
public MyTreeView()
{
InitializeComponent();
ToolStrip ts = new ToolStrip();
ts.Dock = DockStyle.Top;
//Repeat this 4x for Add Parent / Delete Parent + Add Child / Delete Child
ToolStripMenuItem tsmi1 = new ToolStripMenuItem();
//Configure DisplayStyle, Image, Text, Name, ClickEvent
ToolStripSeparator tss = new ToolStripSeparator();
ts.Items.Add(tsmi1);
ts.Items.Add(tsmi2);
ts.Items.Add(tss);
ts.Items.Add(tsmi3);
ts.Items.Add(tsmi4);
ts.Parent = this;
this.Width = ts.Width + 10;
}
void tsmi1_Click(object sender, EventArgs e)
{
//Add a root node and N child nodes
}
}
我已在主表单上删除了MyTreeView
的实例,但是当我点击tsmi1
时,它会创建父级&amp; <{1}}下面的子节点,因此您无法看到它们。
我已在Toolstrip ts
和BringToFront()
上尝试this
,但无论哪种方式都行为相同。
这似乎是一个在SO上有点常见的问题但是在我的案例中没有合适的答案。
另外,愚蠢的问题但是为什么当我切换到自定义控件的设计视图时,它继承自另一个控件,我看不到设计师呢?我只是得到了
的灰色屏幕要向您的类添加组件,请从“工具箱”中拖动它们,然后使用“属性”窗口设置其属性。要为您的班级创建方法和事件,请单击此处切换到代码视图。
我期待一个空白的Treeview控件,我可以在设计器中进行自定义,而不是以编程方式创建所有这些子控件来放置它。