循环访问ToolStripSplitButton中的DropDownItems

时间:2013-03-28 22:42:10

标签: c# winforms

我有一个WinForm应用程序,我有一个ToolStripSplitButton包含三个项目(项目1,项目2,项目3)。

现在我想要做的是允许用户点击ToolStripSplit按钮,然后将下一个值分配给ToolStripSplit按钮的文本属性。我提出了以下解决方案,但工作正常,但我想知道是否有更好的方法:

private void toolStripSplitButton_ButtonClick(object sender, EventArgs e)
{
    ToolStripSplitButton tsb = (ToolStripSplitButton)sender;

    for (int i = 0; i < tsb.DropDownItems.Count; i++)
    {
        int ii = i + 1;
        if (ii >= tsb.DropDownItems.Count)
        {
            ii = 0;
        }

        if (tsb.Text == tsb.DropDownItems[i].Text)
        {
            tsb.Text = tsb.DropDownItems[ii].Text;
            break;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

更好的是旁观者的眼睛。我的版本:

private void toolStripSplitButton1_ButtonClick(object sender, EventArgs e) {
  ToolStripSplitButton tsb = (ToolStripSplitButton)sender;
  string text = tsb.DropDownItems[0].Text;
  bool found = false;
  for (int i = 0; i < tsb.DropDownItems.Count; i++) {
    if (found) text = tsb.DropDownItems[i].Text;
    found = (tsb.Text == tsb.DropDownItems[i].Text);
  }
  tsb.Text = text;
}