我有一个 Visual Studio 调试器可视化项目,当我将 a 添加ToolStripComboBox
到 aToolStripDropDownMenu
时,组合框的项目仅在第一次显示表单时出现。
像这样:
显示问题的最基本版本的 winform 代码如下:
public class MyVisualizerDialog : Form
{
public MyVisualizerDialog()
{
var toolStripComboBox = new ToolStripComboBox
{
Items = { "One", "Two", "Three" }
};
var toolStripDownDown = new ToolStripDropDownMenu
{
Items = { toolStripComboBox }
};
var toolStrip = new ToolStrip
{
Items =
{
new ToolStripMenuItem("Options")
{
DropDown = toolStripDownDown
}
}
};
Controls.Add(toolStrip);
}
}
然后可视化代码很简单:
public class MyVisualizer : DialogDebuggerVisualizer
{
protected override void Show(
IDialogVisualizerService windowService,
IVisualizerObjectProvider objectProvider)
{
windowService.ShowDialog(
new MyVisualizerDialog());
}
}
一些额外的细节:
如果我添加
ToolStripComboBox
到ToolStripMenuItem.DropDownItems
,它工作正常 - 它似乎特别是在 aToolStripComboBox
中有一个问题ToolStripDropDown
。如果我在控制台应用程序中创建并打开同一表单类的多个实例,它工作正常。
一旦问题发生,它就会不断发生 - 即使我将代码恢复到没有
ToolStripDropDown
如果我重新启动 Visual Studio,它会在第一次显示表单时工作,然后就不行了。
有任何想法吗?!IDialogVisualizerService
任何人都知道处理控件或其他方式的一些皱纹?!
谢谢阅读 :)