【发布时间】:2020-05-08 09:12:20
【问题描述】:
我有一个 Visual Studio 调试器可视化器项目,当我将 ToolStripComboBox 添加到 ToolStripDropDownMenu 时,组合框的项目仅在第一次显示表单时出现。
像这样:
显示问题的最基本版本的 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,它可以正常工作 - 在ToolStripComboBox中添加ToolStripComboBox似乎是个问题。如果我在控制台应用程序中创建并打开同一个表单类的多个实例,它可以正常工作。
一旦出现问题,它继续发生 - 即使我将代码恢复到没有
ToolStripDropDown的版本如果我重新启动 Visual Studio,它会在第一次显示表单时工作,然后就不行了。
有什么想法吗?!任何人都知道IDialogVisualizerService 处理控件或其他东西的方式有些皱纹?!
感谢阅读:)
【问题讨论】:
标签: c# winforms combobox debuggervisualizer toolstripdropdown