0

私は WinForm アプリを持っており、ToolStripSplitButtonその上に 3 つのアイテム (アイテム 1、アイテム 2、アイテム 3) を含んでいます。

今私がしたいことは、ユーザーがボタンをクリックして、ボタンの Text プロパティ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;
        }
    }
}
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 に答える