• ベストアンサー

BeforeExpandのイベント作成方法

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

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

  • ベストアンサー
  • WizTaka
  • ベストアンサー率53% (7/13)
回答No.1

Form1 に TreeView を張り付けてあると思います. それなら,以下の手順でできます. 1. Form1 に張り付けてある TreeView を選択して,[右クリック] - [プロパティ] を開く 2. プロパティの上部にあるイベントボタン (稲妻マークのボタン) をクリック 3. BeforeExpand イベントがあるので,それをダブルクリック すると,Form1 のクラスの中に, private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { } ができます.

moncyasan
質問者

お礼

WizTakaさん細かい回答ありがとうございます。 雷マークのボタンまでは見れていませんでした(^_^.)

関連する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; } }

  • フォームのイベントを標準モジュールから呼び出す

    フォームのイベントを標準モジュールから呼び出す事は出来ないのでしょうか? ちなみにアクセスです。 例えば、 Private Sub Form_Load() MsgBox "test" End Sub というのはフォームを開いたときにしか発生しないですよね。 でもフォームを開いている状態でForm_Loadと全く同じ事をしてほしい時は どうすればいいですか? 標準モジュールで Sub a() Call Form_フォーム1.Form_Load End Sub としてみましたが、メソッドまたはデータ メンバが見つかりません。 (Error 461)になりました。 MsgBox "test" だけなら、 Sub a() MsgBox "test" End Sub にすりゃいいじゃん!って思われがちですが、 実際はForm_Loadイベントにはたくさんのコードが書かれています。 標準モジュールからイベントの呼び出しを教えてください。

  • VC#のTreeViewコントロールについて

    こんばんは。 VC#2005ExpressEditionで、TreeViewコントロールを使ったフォームを作ろうとしています。 フォームの左側にTreeViewコントロールをおいて、 ノードを選択するたびに、右側が切り替わるようなフォームを作りたいと考えています。 ちょうどeclipseの設定画面みたいな感じです。 ノードの数はすでに決定しています。 ただ、いろいろ調べたのですが、 ノードを追加したり削除したり、コードにアイコンを設定したり、 そういった情報はあるのですが、私がやってみたいことの情報は見つかりませんでした・・・。 ノードに対応するフォームをひとつづつ作って、ノードが選択されたときにそれを呼び出す、 のような感じだと思うのですが、具体的にどのように設定したらよいか分かりません・・・。 ご存知の方がいらっしゃったら教えていただけませんか? よろしくおねがいします。

  • ツリービューのノードを閉じた時のイベント

    VB6でツリービューを利用したプログラムを組んでいます。ツリービューのイベント処理において、ツリービューのノードを展開した時には、Expandイベントで取得することが可能だと思うのですが、ノードを閉じたときのイベントは、取得することができるのでしょうか?

  • フォームを作成すると同時にイベントを作成する方法は

    フォームを作成すると同時にイベントを作成する方法は? アクセスなのですが 標準モジュールで Sub フォームを作成() Dim myForm As Form Set myForm = CreateForm DoCmd.Close acForm, myForm.Name, acSaveYes End Sub をしたと同時に、 そのフォーム内に Private Sub Form_Open(Cancel As Integer) MsgBox "開きました" End Sub のようなイベントを同時に生成するにはどうすればいいでしょうか? クラスモジュールを使うのですか? クラスモジュールの使い方がまったくわからないのですが サンプルコードを頂けないですか?

  • ツリービューのノードをダブルクリックしたことを判断させるには

     VBにて、ツリービューのノードをダブルクリックしたときにこうする、というような処理をさせるにはそうすればいいんでしょうか。  TreeView1_NodeClickというのはありますが、ダブルクリックに関してはDblClickだけしか存在せず、どのノードを選択したかを取得できません。  どなたか、TreeView1_NodeClickのようにノードをダブルクリックした時に限り、そのノードを取得して処理をさせるというような方法を教えてください。  よろしくお願いします。

  • TreeViewでToolTipTextを表示しない方法

     VB6.0でTreeViewコントロールを使ってプログラミングしています。 このとき、TreeViewのノード上にカーソルを持っていくと、ToolTipTextが 自動的に表示されます。このToolTipTextの表示を禁止する方法を教えて ください。

  • VB.Netのフォームロードイベントについて

    こんにちわ。 いまVB.Net2005Expressで勉強をしている者です。 あるフォームがロードされるときの処理を書こうとすると, 従来のVB6ではFormオブジェクトにLoadイベントがありましたが, VB.Net2005では,最初の状態ではフォームのイベントには 「New」,「Finalize」,「InitializeComponent」の3つしかありません。 もしVB.Net2005でForm_Loadイベントを書きたいときは, 自分で, 「Private Sub Form1_Load(Byval ~」と書かなくてはいけないのでしょうか? 初歩的な質問になるかもしれませんが,教えてください。 よろしくお願いします。

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

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

  • Visual C#で・・・。

    こんばんは、よろしくお願いします。 たとえば、VBでフォームにLabel1~10をコピーして張り付けると 自動的に、コントロール配列になってこのようなコードを書けますが、 Private Sub Form_Load() Dim i As Integer For i = 0 To 9 Label(i).Visible = False Next i End Sub これを、C#でやろうとすると、自動でコントロール配列にはならないし 同じことができません。 C#でコントロール配列のようなことをするには、どうしたらいいですか? お願いします。

専門家に質問してみよう