- - PR -
イベントが2度繰り返し起きる
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-09-19 11:59
Visual Studio 2005 で開発を行っているものです。
フォームにはパネル(pnlColor1)があり、その中にラベルが20個あります。 パネル(pnlColor1)内のコントロール(ラベル)を取得しイベントハンドラを追加しました。 ラベルをクリックをしたらカラーパレットを起動させるようにします。 下記のコードで、実現させとうと思ったのですが、ラベルをクリックすると Private Sub setColor が二回連続で必ず呼び出され、カラーパレットが二回連続で出現します。 どうしても原因がわかりません。 どうか助言をよろしくお願いします。 Private Sub frmGraphSet_Load(ByVal sender As System.Object, ByVal e As_ System.EventArgs) Handles MyBase.Load Dim i As Integer Dim setColorNo As Integer setColorNo = Me.pnlColor1.Controls.Count 'パネル内のコントロール取得 For i = 0 To setColorNo - 1 'イベントハンドラに追加 AddHandler Me.pnlColor1.Controls(i).MouseClick, AddressOf setColor Next End Sub Private Sub setColor(ByVal sender As Object, ByVal e As_ System.Windows.Forms.MouseEventArgs) If Windows.Forms.MouseButtons.Left Then Dim ColorDialog1 As New ColorDialog 'カラーパレットを表示し、ダイアログのOKボタンが押されたら、ラベルのバックカラーを変更 If (ColorDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then sender.BackColor = ColorDialog1.Color End If End If End Sub | ||||||||
|
投稿日時: 2006-09-19 12:36
MouseClickなんてハンドラあったっけ? | ||||||||
|
投稿日時: 2006-09-19 13:09
Control.MouseClickですぅ。 >へぼさん 正常に動作しました。
| ||||||||
|
投稿日時: 2006-09-19 13:22
デザイナ側でもイベント登録しているということはないですか? _________________ R・田中一郎 - R.Tanaka.Ichiro’s Blog | ||||||||
|
投稿日時: 2006-09-19 13:30
ミニマム コードを組んで問題の切り分けをすべきだと思います。
私の方でも、まどかさんと同じく問題なく動作することを確認しました。
それであれば、Handles 句が追加されます。 すでにプロシージャが存在する場合は、Label1_MouseClick_1 のようなプロシージャが生成されます。 (あまり考えられませんが) このあたりが原因であれば、ブレーク ポイントを設定して、 デバッグすればすぐ判明するところでしょうね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-09-19 13:51
皆様、ご教授ありがとうございます。
まどか様のコードを元に Private Sub Label1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Console.WriteLine("MouseClick") Dim x As New ColorDialog If (x.ShowDialog() = Windows.Forms.DialogResult.OK) Then sender.BackColor = x.Color End If x.Dispose() End Sub としたところ、問題なく動きました。 ただ、実際のプログラムに組み込んだところ、やはり症状は改善されませんでした。 問題はこのコードではなく、他の場所にあるようです。 じゃんぬねっと様の助言のとおり、ミニマムコードを組んでこれから原因を探そうと思います。 | ||||||||
|
投稿日時: 2006-09-19 14:21
「へぽさん」が「へぼさん」になってしまいました。 大変失礼いたしました。m(_ _)m #ありゃっと思い、メモ帳に貼り付けて72ポイントにしたら。。。 |
1