Lineコントロールのクリックイベントを拾うには?

解決


BeBe  2006-03-17 09:24:45  No: 130702

LineコントロールやShapeコントロールなどはクリックしたときなどに
イベントが発生しないので、Lineコントロールがクリックされたときに
ある処理をしたいのですがどうやればいいのか分かりません。
PictureBoxなどで代用しようかとも考えたのですが、線が斜めになる場合
や、複数の線が重なる場合がありうまくいきません。
Lineのイベントを拾うにはどうしたらよいのでしょう?
ほかの方法でもいいので、いい方法があれば教えてください。


通ってみた  2006-03-17 11:10:44  No: 130703

Lineにクリックイベントがないのだから、他で座標を調べてやるしかないですね
PictureBoxにラインを引き、クリックした場所の色を調べて判定するという手が一番簡単かも


VBレスキュー(花ちゃん)  2006-03-17 20:28:30  No: 130704

Label コントロールを背面に配置して、Label コントロールのクリックイベントを
利用するようにすれば簡単かと思いますが!。


BeBe  2006-03-17 23:46:35  No: 130705

VBレスキューさんのいうようにLabelを使うことも考えたのですが、
線の上を押した時だけイベントを発生させたいので、この方法は無理でした。
やはり、座標を調べる方法しかないのでしょうか?


めだか  2006-03-18 00:25:23  No: 130706

似たような質問なので参考にしてみてください。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200603/06030038.txt


BeBe  2006-03-18 01:01:38  No: 130707

めだかさん、ありがとうございました。
自分ではピクチャボックスなどのコントロールを
APIを使って形を変えラインのようにしようとも考えましたが、
そちらのやり方の方がよさそうです。参考になりました。


魔界の仮面弁士  2006-03-18 07:14:57  No: 130708

結果を UserControl に描画してみてはいかがでしょう?

UserControl の BackStyle を [透明] にしておいた上で、
MaskPicture と MaskColor の割り当てを行うようにしておけば、
マスク指定した領域のみが、クリックを受け付けるようになりますよ。


BeBe  2006-03-20 06:23:39  No: 130709

みなさん、ありがとうございます。
無事解決しました。


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




  


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