LineコントロールやShapeコントロールなどはクリックしたときなどに
イベントが発生しないので、Lineコントロールがクリックされたときに
ある処理をしたいのですがどうやればいいのか分かりません。
PictureBoxなどで代用しようかとも考えたのですが、線が斜めになる場合
や、複数の線が重なる場合がありうまくいきません。
Lineのイベントを拾うにはどうしたらよいのでしょう?
ほかの方法でもいいので、いい方法があれば教えてください。
Lineにクリックイベントがないのだから、他で座標を調べてやるしかないですね
PictureBoxにラインを引き、クリックした場所の色を調べて判定するという手が一番簡単かも
Label コントロールを背面に配置して、Label コントロールのクリックイベントを
利用するようにすれば簡単かと思いますが!。
VBレスキューさんのいうようにLabelを使うことも考えたのですが、
線の上を押した時だけイベントを発生させたいので、この方法は無理でした。
やはり、座標を調べる方法しかないのでしょうか?
似たような質問なので参考にしてみてください。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200603/06030038.txt
めだかさん、ありがとうございました。
自分ではピクチャボックスなどのコントロールを
APIを使って形を変えラインのようにしようとも考えましたが、
そちらのやり方の方がよさそうです。参考になりました。
結果を UserControl に描画してみてはいかがでしょう?
UserControl の BackStyle を [透明] にしておいた上で、
MaskPicture と MaskColor の割り当てを行うようにしておけば、
マスク指定した領域のみが、クリックを受け付けるようになりますよ。
みなさん、ありがとうございます。
無事解決しました。
ツイート | ![]() |