見えないコントロールをクリックするには?

解決


Hine  2006-01-24 07:51:30  No: 129781

開発環境:Windows2000  /  VisualBasic.Net2003

いつも参考にさせていただいています。
現在、Form1のピクチャーボックスに表示した写真の特定の座標をクリックすると、
Form2が表示されるプログラムを作成しようとしています。

ピクチャーボックス上にラベルをVisible=Falseで配置し、ラベルをクリックした
ら、Form2が表示されるように考えたのですが、Visible=Falseでは、クリックを
認識してくれませんでした。
ピクチャーボックスが写真のため、ラベルを同一色に設定することも出来ない為、
対処方法が見つからず困っております。

どなたか、お知恵を拝借できないでしょうか?


ガッ  2006-01-24 08:31:46  No: 129782

Label のイベントに括らなければ、
単純に PictureBox の MouseMoveイベント でマウスの座標を保存して、
Clickイベント で制御してみては?

※あ、そういえば…ラベルって透明にできなかったっけ…?


いな  2006-01-24 11:12:08  No: 129783

透明な  作成する
でググルとたしか
これが欲しかった
のサンプルサイトが見付かるような気がする


Hine  2006-01-24 18:47:23  No: 129784

ガッ様、いな様、アドバイスありがとうございます。
見えないコントロールのクリックという内容で質問させて頂きましたが、私が
行いたい処理は、「特定の座標位置のクリックを認識」でしたので、ガッ様に
アドバイス頂いた方法を取らせて頂き、問題を解決することができました。
ありがとうございました!!

以下、サンプルで作成したコードです。

Dim xx As Integer
Dim yy As Integer
Dim xa As Integer
Dim ya As Integer

    Private Sub Form1_Load(〜
        xa = 100 ←正解座標(x)
        ya = 100 ←正解座標(y)
    End Sub
'-----------------------------------------------------
    Private Sub pic1_MouseMove(〜
        lblTEST.Text = e.X & "," & e.Y
        xx = e.X
        yy = e.Y
    End Sub
'-------------------------------------------------
    Private Sub pic1_Click(〜
        If xx <= xa + 50 And xx >= xa - 50 And _
            yy <= ya + 50 And yy >= ya - 50 Then
            MsgBox("正解!!")
        Else
            MsgBox("間違い")
        End If
    End Sub

x,y各座標に公差を設けることで、クリックの許容範囲を広げる事で、見えない
コントロールをクリックしていることと同じ動作が実現できました。

最後になりましたが、貴重なアドバイスをありがとうございました。


どうでもよいけど  2006-01-24 20:18:20  No: 129785

lblTEST.Textはオブジェクト名からラベルと認識する方が多いです。
テキストボックスならtxtTESTとすることをお勧めします。


魔界の仮面弁士  2006-01-24 20:57:26  No: 129786

> lblTEST.Textはオブジェクト名からラベルと認識する方が多いです。
そりゃまぁ、ラベルコントロールなわけですし……。(^_^;)

> テキストボックスならtxtTESTとすることをお勧めします。
ただし最近は、短いプレフィックスで表現しきれない場合や、
継承クラスなどでの扱いにくさなどの理由から、
その記法(Hungarian Notation) は廃れつつあるようです。
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/cpconmethodusageguidelines.asp

以下、ガイドライン。
http://www.microsoft.com/japan/msdn/library/ja/cpgenref/html/cpconnamingguidelines.asp


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加