開発環境:Windows2000 / VisualBasic.Net2003
いつも参考にさせていただいています。
現在、Form1のピクチャーボックスに表示した写真の特定の座標をクリックすると、
Form2が表示されるプログラムを作成しようとしています。
ピクチャーボックス上にラベルをVisible=Falseで配置し、ラベルをクリックした
ら、Form2が表示されるように考えたのですが、Visible=Falseでは、クリックを
認識してくれませんでした。
ピクチャーボックスが写真のため、ラベルを同一色に設定することも出来ない為、
対処方法が見つからず困っております。
どなたか、お知恵を拝借できないでしょうか?
Label のイベントに括らなければ、
単純に PictureBox の MouseMoveイベント でマウスの座標を保存して、
Clickイベント で制御してみては?
※あ、そういえば…ラベルって透明にできなかったっけ…?
透明な 作成する
でググルとたしか
これが欲しかった
のサンプルサイトが見付かるような気がする
ガッ様、いな様、アドバイスありがとうございます。
見えないコントロールのクリックという内容で質問させて頂きましたが、私が
行いたい処理は、「特定の座標位置のクリックを認識」でしたので、ガッ様に
アドバイス頂いた方法を取らせて頂き、問題を解決することができました。
ありがとうございました!!
以下、サンプルで作成したコードです。
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各座標に公差を設けることで、クリックの許容範囲を広げる事で、見えない
コントロールをクリックしていることと同じ動作が実現できました。
最後になりましたが、貴重なアドバイスをありがとうございました。
lblTEST.Textはオブジェクト名からラベルと認識する方が多いです。
テキストボックスならtxtTESTとすることをお勧めします。
> 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
| ツイート |
|