• ベストアンサー

メニューの作成とイベント

ご質問させていただきます。 for i = 1 to listN Form1.ToolStripMenuItem.DropDownItems.Add(ListName(i)) next このような形で、メニューリストを作成していきますが、 各、リストをクリックした際に、発生するイベントは どのようにプログラムすれば良いのでしょうか? イメージとしては、IEの「お気に入り」のように、任意で作成した メニューリストに対してイベントを発生させたいと思っております。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

ヘルプ(MSDN)の 「ToolStripDropDownItem クラス」 のページで例としてサンプルコードが 載っていますので、参考にして下さい。 http://msdn.microsoft.com/ja-jp/library/6wk1es0h.aspx

mr2gt-s
質問者

お礼

すいません。 お返事がものすごく遅れてしまいました。 すぐに読めそうにありませんので、少しずつ解読しようと思います。 ありがとうございました。

関連するQ&A

  • コンテキストメニュークリック時のイベントハンドラ

    C#にてフォームアプリを作成しています。 そこでツリービューに表示されたノードを右クリックしたときにコンテキストメニューが表示される ように下記のように記述しました。表示されたノードの上で右クリックすると「Export」、「Import」 というメニューが表示されます。 しかし、イベントハンドラの書き方がよくわかりません。 「Export」又は「Import」がクリックされたというイベントはどう検出すればよいでしょうか。 // ノード右クリック時の動作 private void treeView1_MouseDown(object sender, MouseEventArgs e) { // 右クリックでもノードを選択させる if (e.Button == MouseButtons.Right) { // ノードの選択 treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y); // コンテクストメニューの作成 ContextMenuStrip contextMenu = new ContextMenuStrip(); ToolStripMenuItem openLabel = new ToolStripMenuItem(); openLabel.Text = "Export"; ToolStripMenuItem deleteLabel = new ToolStripMenuItem(); deleteLabel.Text = "Import"; contextMenu.Items.Add(openLabel); contextMenu.Items.Add(deleteLabel); // ツリービューにコンテキストメニューを追加 treeView1.ContextMenuStrip = contextMenu; } }

  • [VC#2005] プログラムからのメニューの追加について

    Visual C#2005でウェブブラウザを作成していますが、IEの「お気に入り」のようなメニューを作成したいです。 リストデータから、ファイルを読み込み、項目を追加するまではできましたが、 リスト(CSVファイル)は下記のようになっており Yahoo,http://www.yahoo.co.jp/ goo,http://www.goo.ne.jp/ goole,http://www.google.co.jp/ これらを、メニューに追加します。 しかし、読み込みは完了しているようですが、 項目をクリックすると、一番最後の項目が実行されてしまいます。 (googleが表示されてしまいます) なぜでしょうか? いろいろと調べてみたのですが、「VC++」のものしかありません。 ソースはマイクロソフトのものを参考にしました。 private void LoadData() { string path = "urllist.txt"; string delimstr = ","; char[] delimiter = delimstr.ToCharArray(); string[] strData; string strLine; ToolStripMenuItem fileitem = new ToolStripMenuItem(); fileitem.Text = "お気に入り(&F)"; Boolean fileExsits = System.IO.File.Exists(path); if (fileExsits) { System.IO.StreamReader sr = new System.IO.StreamReader( path, System.Text.Encoding.Default); while (sr.Peek() >= 0) { strLine = sr.ReadLine(); strData = strLine.Split(delimiter); // Menustrip ToolStripMenuItem newitem = new ToolStripMenuItem(); newitem.Text = strData[0]; newitem.Click += delegate { webBrowser1.Navigate(strData[1]); }; fileitem.DropDownItems.Add(newitem); menuStrip1.Items.Add(fileitem); } } } ご指導をお願いします。

  • For Each ~ Next の動作

    コレクションの操作をするときなどに、 For tmp in testCol   List1.Add tmp Next ってな感じでFor Each文をつかいますよね。 あれって、 For i = 0 To testCol.Count   List1.Add testCol.Item(i) Next i と書くのに比べ、びっくりするほど処理が速いですよね。 いったい、どんな違いがあるのでしょうか。

  • VBAでのコントロールイベント処理

    VBAで画面を作成しています。 「form1」からボタンを押下することで「form2」がモーダルで表示される仕様です。 「form2」からListのコントロールをダブルクリックすることで 「form2」は閉じ、「form1」に選択した内容を表示するという仕様です。 その場合、「form1」の別のイベントがなぜか走ってしまいます。 どのような処理をおこなえば、「form1」のイベントが発生しないようなるでしょうか??

  • メニュー追加の方法

    まずは環境を、Windows2000、VB6SP6です。 早速ですがメニューの追加をしたいのですが、過去ログを検索すると http://oshiete1.goo.ne.jp/kotaeru.php3?q=997423 こちらの方法が見つかったのですが、これとは少し違うのです。 あらかじめ、メニューは作成しているのですが、 下記は例ですが構成が menu + sub(0) + subsub(0) となっています。 元々はsubsub()だけだったのですが、 これはインデックス数が不特定で、最大100まで変動する予定です。 (起動時にプラグインのようなもの読み込むため変動します) menu + subsub(0)~subsub(99)とするとメニューが長すぎて画面に入りきりません。 そこで、sub()を間に入れ、subsub()を10個づつに区切ろうとしました。 変動するメニュー数が50個とした場合 for i = 1 to 5     load sub(i)     for j = 1 to 9         load subsub(i * 10 + j)     next i next i とこんな感じにしてみたのですが、実行すると、 sub(0)以下のメニューにしかsubsub()は追加されません。 load で増やしたメニューのさらに下に load でメニューを増やすことは出来ないでしょうか? やはり上記のリンク先のようにAPIで作るか、 メニューを最初から作っておくべきなのでしょうか? 分かりにくいかもしれませんがよろしくお願いします。

  • 書いたクッキーを読み出してメニューに入れるイベントの書き方

    フォーム部品type=text の一行テキスト領域で入力した単語を、inputwordkensaku.cgiには辞書検索させ検索結果をCookieに書かせるところまでやらせ、そのCookie データをJavaScript で読み、あらかじめ設置しておいたフォーム部品であるメニューにセットしようとしているのですが、うまくいきません。  cgiはエラーが出ずに動きますが、Cookie への書き込みができたか確認しようにも <INPUT size="20" name="inputbox" type="text" onChange = "inputwordkensaku.cgi">のイベントにづけて、このCookie を読み出すための次のようなJavaScriptのプログラムをどこに書きつなげたらよいのかが分かりません。よろしくお願いいたします。 <script type="text/javascript"><!-- function set__resultsData(){ //クッキーに格納されたデータを読み出して、 //オプションメニューと隠しフィールドにセットする getc=document.cookie+";";  //クッキーを読む x1=getc.indexOf("resultdata"); if (x1!=-1) { tem1=getc.substring(x1-1); x2=tem1.indexOf("="); x3=tem1.indexOf(";"); urls_data0=tem1.substring(x2+1,x3); urls_data=unescape(urls_data0); CkOpt=urls_data.split("<>"); //クッキーデータの分析 for (i=1; i<CkOpt.length; i++){ longlinestr = CkOpt[i-1];//これは見出し語の原型 pp = longlinestr.indexOf(" /// "); midashigo = longlinestr.substr(0, pp-1); yakugo = longlinestr.substring(pp+5); document.form1.hiddenlist.options[i] = new Option(); document.form1.hiddenlist.options[i].text = yakugo; //↑隠しリストに辞書の訳語部分のみをセットする document.form1.wordlist.options[i]= new Option(); document.form1.wordlist.options[i].text=midashigo; //見出し語のみをセットする }}} // --></script>

  • ZedGraphのグラフ作成時のX軸日付

    VB.NET 2008、ZedGraphを使って、 グラフを作成しています。 普通の折れ線グラフを作成しているのですが、 X軸の日付 例えば10月8日が8.10と表示されてしまいます。 希望としては10/8としたいのですが。 データタイプは myPane.XAxis.Type = AxisType.DateAsOrdinal Xのデータは下記のような感じで書いています。 for i=0 to 10  aaa(i)=日付情報  X=aaa(i).ToOADate  Y=・・・  list.Add( X, Y ); Next i わかる方がおられましたら、助言をお願いします。

  • BeforeExpandのイベント作成方法

    いつもお世話になっています。 C#をはじめて3日目の初心者です。 C#でツリーコントロールをしようしてディレクトリツリーを作成しています。 ノードを展開しようとしているときに発生するイベントが「BeforeExpand」であることまで調べられたんですが、「TreeView」イベントから「BeforeExpand」を作成する方法がわかりません。。。 フォームをダブルクリックするとForm1_Loadのコードが自動で作成されますが、「TreeView」に対して何かをすればできると思っています。。。 ご存知の方よろしくお願いします。

  • for文の使い方

    for文の中にif文を入れて使いたいのですが「Nextに対するforがありません」となりエラーが出てしまいます。どうしたらよいのでしょうか? If Option1.Value = True Then For i = 2 To 10  If xlSheet.Cells(i, 2).Value > 10 Then Form2.List1.AddItem xlSheet.Cells(i, 1) Next i End If End If

  • IEのお気に入りのメニューバーでサブメニューが

    IEのお気に入りのメニューバーでサブメニューが開かない時があります。 添付画像の赤丸のような状態になって、サブメニューが開きません。 こうなった場合このIEを終了させるしかないのですが、 この状態はなんなのでしょう? OSはWindows7 sp1 IE9ですが、結構昔のIEからこの現象発生します。

専門家に質問してみよう