C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: ボタンの選択枠を消したい


(過去ログ 46 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■24875 / inTopicNo.1)  ボタンの選択枠を消したい
  
□投稿者/ You (1回)-(2008/09/11(Thu) 15:17:14)

分類:[.NET 全般] 

.Net 2.0,WinXPです。

ボタンを押下した時、どんなスタイルでも、
(FlatStyle=Flatでも)押下時に枠線が表示されてしまいます。

これを消すにはどうすればよいのでしょうか?


恐らく、オーナードローあたりが肝になってくるのだと思いますが、
どのメソッドがこの描画を行っているのでしょうか?


引用返信 編集キー/
■24879 / inTopicNo.2)  Re[1]: ボタンの選択枠を消したい
□投稿者/ カドルドエグ (23回)-(2008/09/11(Thu) 15:39:09)
No24875 (You さん) に返信
> .Net 2.0,WinXPです。
>
> ボタンを押下した時、どんなスタイルでも、
> (FlatStyle=Flatでも)押下時に枠線が表示されてしまいます。
>
> これを消すにはどうすればよいのでしょうか?
>
>
> 恐らく、オーナードローあたりが肝になってくるのだと思いますが、
> どのメソッドがこの描画を行っているのでしょうか?
>

ここのスレッドで、似たような(ここの場合は青枠線が主となっていますが、途中で破線の話にも触れています)話題が出ています。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2180158&SiteID=7

そこによると、破線は「選択されている状態」をあらわすためのものであり、
基本的にWindows側の仕様のため、プログラム側で意図的に完全に消すことはできないそうです。

しかし、(リンク先にもありますが)「フォーカスが当たっていると線が出る」ということから、
例えばPanelのような元々選択不可なコントロールと一緒にしてそちらへフォーカスを移すことで消す、という手段もあるようです。
引用返信 編集キー/
■24908 / inTopicNo.3)  Re[1]: ボタンの選択枠を消したい
□投稿者/ よねKEN (11回)-(2008/09/11(Thu) 22:50:26)
> これを消すにはどうすればよいのでしょうか?

Buttonクラスを継承して独自のボタンを作ります。
この独自クラスでは、コンストラクタあたりでSetStyleメソッドを呼び出して、
スタイルからControlStyles.Selectableを外せば、選択できないボタンになり、
結果として点線の枠線はでなくなります。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -