1

我一直在通过编程将项目添加到工具条,但问题是我需要向它添加选中​​的属性。不知道该怎么做。这是代码:

toolStripMenuItemAudioSampleRate.DropDownItems.Add("8 kHz", null, new EventHandler(mnuAudioSamplingRate_Click));
toolStripMenuItemAudioSampleRate.Checked = (samplingRate == 8000);//Checks if the there is no vid device

现在我知道它会出错,因为我添加了已检查toolStripMenuItemAudioSampleRate 的属性而不是8 kHz. 我正在尝试将此属性添加到动态添加的项目中。

提前致谢。

4

4 回答 4

5

不要使用Add(String, Image, EventHandler)辅助方法来创建下拉项,而是自己创建ToolStripMenuItem,将其设置为选中,然后将其添加到列表中。

ToolStripMenuItem item = new ToolStripMenuItem("8 kHz", null, new EventHandler(mnuAudioSamplingRate_Click));
item.Checked = (samplingRate == 8000);
toolStripMenuItemAudioSampleRate.DropDownItems.Add(item);
于 2011-02-04T19:16:40.693 回答
2

为了使这段代码更有趣,我建议删除new EventHandler总是多余的,并使用对象初始化器:

toolStripMenuItemAudioSampleRate.DropDownItems.Add (
    new ToolStripMenuItem ("8 kHz", null, mnuAudioSamplingRate_Click) {
        Checked = (samplingRate == 8000)
    });
于 2011-02-04T19:24:18.220 回答
0
toolStripMenuItemAudioSampleRate.DropDownItems["8 kHz"].Checked = (samplingRate == 8000)

这可能会做你想要的。将这些动态添加的项目保留在某个数组中可能是个好主意,这样您就不必使用这种丑陋的语法。

于 2011-02-04T19:17:30.607 回答
-1

您可以创建一个装饰器(GOF 设计模式) http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/book/hires/pat4dfso.htm

于 2011-02-04T19:16:05.893 回答