DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Formのタイトルバーがクリックできない

環境/言語:[Win7 SP1 32bit / VB2008 ]
分類:[.NET]

初めまして。
 VB2008 SP1にて開発をしているのですが、フォームのLoadイベントへ以下の構文を追加し、実行したフォームを最大化してから元のサイズに戻すと、タイトルバーや最大化などのボタンがクリックできない状況となります。タスクバーから最小化をおこない元に戻すと操作ができるようになります。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'フォームのバックカラーを透明化
Me.TransparencyKey = Me.BackColor

End Sub

私の環境だけなのか判らないでいる状態です。
クリックできるようにする方法があれば教えていただけないでしょうか?
■No32516に返信(HRさんの記事)
> 最大化してから元のサイズに戻すと、タイトルバーや最大化などのボタンが
> クリックできない状況となります。

OS の設定で、画面の色深度が 32bit カラー(True Color) になっている
環境において、そのような現象が発生する事があるようです。
16bit カラー(High Color)に変更すると、再発しなくなるかも。


> 私の環境だけなのか判らないでいる状態です。
自分の環境の場合、元の BackColor の色によって状況が異なりますね。

Me.BackColor = 別の色
Me.TransparencyKey = Me.BackColor


SystemColors.Control や Color.Empty の場合(初期値)
→「最大化はできるが、それを解除した後で、マウス操作が透過されるようになる」

Color.Black
→「最大化はできるが、それと同時にマウス操作が透過されるようになる」

Color.White
→「最初からフォームを触れない状態」

Color.AliceBlue、Color.Red 等
→「マウス操作が透過される不具合は確認できず」
■No32517に返信(魔界の仮面弁士さんの記事)
 いろいろテストしていただきありがとうございます。

 私もいろいろいじってみたのですが、悪さをしているのが、Win7のAero機能のような気がします。
 ベーシックスタイルに戻すと私の環境では問題なく動作します。

 ということで、なんとなく自己解決はしたのですが、ほかの方法も何かないのか暇をみては探り中です。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板