通过编程添加checked = true

时间:2011-02-04 19:08:34

标签: c# toolstrip checked

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

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

现在我知道它会工作错误,因为我已将checked属性添加到toolStripMenuItemAudioSampleRate 不是8 kHz。我正在尝试将此属性添加到动态添加的项目中。

提前致谢。

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

要使this代码变得更加漂亮,我建议删除new EventHandler,它总是多余的,并使用对象初始值设定项:

toolStripMenuItemAudioSampleRate.DropDownItems.Add (
    new ToolStripMenuItem ("8 kHz", null, mnuAudioSamplingRate_Click) {
        Checked = (samplingRate == 8000)
    });

答案 2 :(得分:0)

toolStripMenuItemAudioSampleRate.DropDownItems["8 kHz"].Checked = (samplingRate == 8000)

那可能会做你想要的。在某个地方坚持这些动态添加的项目可能是一个好主意,这样你就不必使用这种丑陋的语法。

答案 3 :(得分:-1)