2

プログラムで ToolStripButton 項目をコンテキスト メニューに追加しています。

その部分は簡単です。

this.tsmiDelete.DropDownItems.Add("The text on the item.");

ただし、ユーザーがアイテムをクリックしたときに実際に何かが発生するように、イベントを関連付ける必要もあります。

どうすればいいですか?クリックを処理するメソッドは、ユーザーがクリックした特定の ToolStripButton に関連する何らかの ID またはオブジェクトを受け取る必要もあります。

4

2 に答える 2

3

Clickイベントに登録できませんか?このようなもの:

ToolStripButton btn = new ToolStripButton("The text on the item.");
this.tsmiDelete.DropDownItems.Add(btn);
btn.Click += new EventHandler(OnBtnClicked);

そして、OnBtnClickedは次のように宣言されます。

private void OnBtnClicked(object sender, EventArgs e)
{
    ToolStripButton btn = sender as ToolStripButton;

    // handle the button click
}

送信者はToolStripButtonである必要があります。これにより、送信者をキャストして、必要な操作を実行できます。

于 2008-09-17T16:12:41.580 に答える
0

そのアンディを助けてくれてありがとう。私の唯一の問題は、追加している ToolStripButtons で AutoSize が機能していないことです。それらはすべて狭すぎます。

以前は機能していたので、かなり奇妙です。


更新: プログラムで作成された ToolStripButton の AutoSize には、間違いなく何か問題があります。しかし、私は解決策を見つけました:

  1. ToolStripButton を作成します。
  2. ラベル コントロールを作成し、フォント プロパティをボタンに合わせて設定します。
  3. ボタンに合わせてラベルのテキストを設定します。
  4. ラベルを AutoSize に設定します。
  5. ラベルの幅を読み取り、それを使用して ToolStripButton の幅を設定します。

ハックですが、動作します。

于 2008-09-17T16:31:43.687 に答える