我有ToolStrip
一个ContextMenu
,像这样:
我的资源中有 2 个图标,如下所示:
我正在尝试将图标切换为 16x16 对应的图标:
void largeIconsToolStripMenuItem_Click(object sender, EventArgs e)
{
var ContextItem = (ToolStripMenuItem) sender;
var ContextMenu = (ContextMenuStrip) ContextItem.Owner;
var ToolStrip = (ToolStrip) ContextMenu.SourceControl;
var Checked = ContextItem.Checked;
ToolStrip.ImageScalingSize = Checked ? new Size(32, 32) : new Size(16, 16);
foreach(ToolStripButton Button in ToolStrip.Items)
Button.Image = Resources.t_new16;
}
这可行,但我不想foreach
为每个单独的图标添加新行。如何将资源名称替换t_icon16
为当前所在的位置t_icon32
?
我试图在 中寻找一Name
处房产Button.Image
,但没有一处。
我也试过:
foreach(ToolStripButton Button in ToolStrip.Items)
foreach(PropertyItem P in Button.Image.PropertyItems)
MessageBox.Show(P.Id.ToString() + " - " + P.Value.ToString());
但是没有MessageBox
显示es。
如何动态交换资源图像?