0

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

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

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

1 回答 1

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;
}
于 2013-03-28T23:04:15.560 回答