Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
透明化したエリア内でマウスのイベント処理
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30885#CommentId85810
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2023/8/7 11:02:12
> Private Sub TextBox(sender As Object, e As EventArgs) Handles TextBox.MouseLeave
いやいやいやいや。それは流石に嘘でしょう。
System.Windows.Forms.TextBox クラスのインスタンスに、"TextBox1" 等ではなく
クラス名と同じ "TextBox" という名をそのまま付けるという点までは分かります。
しかし、Handles TextBox.MouseLeave のイベントハンドラーの名前までも
"Sub TextBox" にしてしまっては、フォーム上で名前が競合してしまうので
コンパイルエラー(BC30260)になってしまうはずですよ?
そのまま "Sub TextBox_MouseLeave" あたりにしておくべきかと。
> 付箋紙のようなアプリを作成しています。
「付箋紙『のような』アプリ」とやらが、どういう構成なのかの説明が欲しかった…。
> 付箋紙エリア外にマウスがあるときにテキストエリアの背景を透明にし、エリア内にある時は不透明にしたいと思っております。
ひとまず、Form1 に TextBox だけを貼った状態で、質問文では
Form1 部…「付箋紙エリア」と呼称
TextBox1 部…「テキストエリア」と呼称
と呼ばれているのだと想定してみます。
MouseLeave/MouseEnter だとコントロール数が増えると面倒なので、
手抜きで Timer で座標を調べてみるとか。
https://gist.github.com/Benshi/237a1ab8b34110791f9a8c20089dd7d2
一方、TrancparencyKey プロパティでくりぬいた場合、
文字周辺のアンチエイリアス部が綺麗に切り抜けません。
真面目にやるなら、 UpdateLayeredWindow API 方式に切り替えるとか。
https://wiki.onakasuita.org/pukiwiki/?UpdateLayeredWindow
https://www.codeproject.com/Articles/1822/Per-Pixel-Alpha-Blend-in-C