在ToolStripSplitButton中循环使用下拉菜单项

本文关键字:菜单项 ToolStripSplitButton 循环 | 更新日期: 2023-09-27 18:06:18

我有一个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;
        }
    }
}

在ToolStripSplitButton中循环使用下拉菜单项

情人眼里出西施。我的版本:

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;
}