我使用ToolStripControlHost来包装一个ListBox控件以将其添加到ToolStripDropDown中,但发现我分配给ListBox.DataSource的项目未显示出来,而ComboBox.DataSource也不工作,不明白为什么ListContorl.DataSource不能在ToolStripControlHost中运行。ToolStipControlHost中的ListControl.DataSource不是函数
ListBox listBox = new ListBox();
listBox.DataSource = new string[] { "1", "2", "3" };
ToolStripControlHost host = new ToolStripControlHost(listBox)
{
Margin = Padding.Empty,
Padding = Padding.Empty,
AutoSize = false
};
ToolStripDropDown dropDown = new ToolStripDropDown() { AutoClose = false };
dropDown.Items.Add(host);
dropDown.Show();
编辑
我发现这个问题是ToolStripDropDown还没有家长提供的BindingContext,所以它会发生与DataManager的任何控制。
嗨,不好意思,谢谢你的帮忙! 我不能通过在分配DataSource之后添加此代码来实现它,你能否给我一个提示哪一行应该以ListBox.cs开始? – Cason
@Cason对不起,我忘了包含一个重要的行,它是:'var hWnd = listBox.Handle;'这看起来好像什么也没做,但实际上访问'Handle'属性会导致创建'Handle'。完整的代码已发布。 – Loathing
谢谢,Loathing〜完美的作品! – Cason