0

インストールされてオンラインになっている各プリンターをメニュー項目に表示するコードをいくつか作成しました。しかし、メニュー項目がクリックされたときにイベントを発生させる方法がわかりません。現在は関係ないため、プリンター名を取得するコードを削除しました。

string printerName; // contains the first printer name, later contains 2nd printername. This is variable.

selectprinterNameMenuItem.DropDownItems.Add(printerName); // here do I add the new printer to the menu item.

通常、メニュー項目にイベントを追加できるはずです。しかし、私はコードで作成しており、正確な名前はわかりません。メニュー項目がクリックされたことを検出するにはどうすればよいですか?

4

2 に答える 2

1

Add(String)メソッドToolStripItemCollectionは、作成されたを返しますToolStripItem。このオブジェクトにイベントハンドラーを追加できます。

string printerName; // contains the first printer name, later contains 2nd printername. This is variable.

ToolStripItem addedItem = selectprinterNameMenuItem.DropDownItems.Add(printerName); // here do I add the new printer to the menu item.
addedItem.Click += new EventHandler(printerName_Click); // here you register to the click event

編集(あなたのコメントによると):

イベントハンドラに渡された送信者引数を使用して、クリックされたプリンタ名を知ることができます。

    void printerName_Click(object sender, EventArgs e)
    {
        ToolStripItem item = (ToolStripItem)sender;
        string printerClicked = item.Text;

        // whatever you want based on the printerName
    }
于 2012-09-26T07:56:01.673 に答える
0

selectprinterNameMenuItem の ItemClicked にフックするよりも。

selectprinterNameMenuItem.DropDownItemClicked += new ToolStripItemClickedEventHandler(xyz);

イベントが発生した原因となったアイテムを特定します。

于 2012-09-26T08:08:19.257 に答える