C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: WPFでコンテキストメニューにイベントを割り当てる


(過去ログ 76 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■44764 / inTopicNo.1)  WPFでコンテキストメニューにイベントを割り当てる
  
□投稿者/ 初心者 (93回)-(2009/12/17(Thu) 13:00:48)

分類:[C#] 

WPFでつくったテキストボックスで、その行を抜き出してコンテキストメニューに表示し、
クリックしたらその行を実行したいと思います。
xaml
<Grid.ContextMenu>
<ContextMenu Name="contextMenu">
</ContextMenu>
</Grid.ContextMenu>

C#
string[] lines = File.ReadAllLines(fileName);
foreach (string line in lines) {
	contextMenu.Items.Add(line);
	contextMenu.Click += (s,e) => Process.Start(line);
}

と割り当てようとしました。
すると、
contextMenu.Click
というイベントは存在しないとのこと。
contextMenu.MouseDown += (s,e) => Process.Start(line);
としてみました。
exeの実行はでき、コンテキストメニューにlineの文字も表示されますが、
メニューを選択しても具体的な処理は行われません。

単にxamlでメニューを割り当てれば操作可能です。

http://blogs.wankuma.com/rti/archive/2009/05/21/173327.aspx
には、
this.aMenuItem.Click += (s,e) => this.MethodA();
みたいな例も出ているのですが、どこでへましているか、
アドバイスいただけないでしょうか。
Webには、規定のメニューをxamlで前もって割り当てておく例は見つかるのですが、
テキストの内容に応じてメニューを割り当てる例は見つけられませんでした。

引用返信 編集キー/
■44765 / inTopicNo.2)  Re[1]: WPFでコンテキストメニューにイベントを割り当てる
□投稿者/ Hongliang (529回)-(2009/12/17(Thu) 13:23:22)
クリックするのは個々の MenuItem であって、ContextMenu そのものではありません。実際、MenuItem には Click イベントが存在しています。
MenuItem を生成して Header と Click を設定し ContextMenu.Items に追加する、という手順でいいでしょう。
引用返信 編集キー/
■44773 / inTopicNo.3)  Re[2]: WPFでコンテキストメニューにイベントを割り当てる
□投稿者/ 初心者 (94回)-(2009/12/17(Thu) 16:23:28)
Hongliangさん
早速ありがとうございます。
行ではなくて、メニューアイテムを作ってそれを追加するのですね。
できました。ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -