gpt4 book ai didi

c# - 在 ToolStripDropDownMenu 中隐藏 ImageMargin 和 CheckMargin

转载 作者:行者123 更新时间:2023-11-30 21:17:50 25 4
gpt4 key购买 nike

我试图在某个 ToolStrip 内的每个 ToolSTripDropDownMenu 中设置 ImageMargin 和 CheckMargin 属性。

foreach (ToolStripDropDownButton tsd in toolStrip1.Items)
{
((ToolStripDropDownMenu)tsd.DropDown).ShowImageMargin = false;
((ToolStripDropDownMenu)tsd.DropDown).ShowCheckMargin = false;
}

抛出一个异常说明如下:

System.InvalidCastException: Unable to cast object of type 'System.Windows.Forms.ToolStripButton' to type 'System.Windows.Forms.ToolStripDropDownButton'.

ToolStrip 包含除 ToolStripDropDownButtons 之外的控件(即 ToolStripButtons 和 ToolStripLabels),因此我可以看到错误发生的位置。我想不通的是如何仅修改 ToolStripDropDownButtons。与标准的 ContextMenu 不同,ToolStripDropDownMenu 默认不包含 CheckMargin 或 ImageMargin 属性。

最佳答案

foreach 语句不执行任何过滤,因此当您将项目类型声明为 ToolStripDropDownButton 时,它会尝试转换该类型的序列。由于某些项目无法做到这一点,因此您需要声明一个不太具体的类型并检查您想要的实例:

foreach (ToolStripItem tsi in toolStrip1.Items)
{
if (tsi is ToolStripDropDownButton) {
ToolStripDropDownButton tsd = (ToolStripDropDownButton)tsi;
((ToolStripDropDownMenu)tsd.DropDown).ShowImageMargin = false;
((ToolStripDropDownMenu)tsd.DropDown).ShowCheckMargin = false;
}
}

关于c# - 在 ToolStripDropDownMenu 中隐藏 ImageMargin 和 CheckMargin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com