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

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

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

Re[3]: tabPageの読み取り専用設定の方法について


(過去ログ 71 を表示中)

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

■41701 / inTopicNo.1)  tabPageの読み取り専用設定の方法について
  
□投稿者/ プリ太 (71回)-(2009/09/28(Mon) 18:56:59)

分類:[C#] 

いつもお世話になっております。
プリ太です。

現在フォームにタブコントロールを配置し、そのtabPageにコントロールを配置しているのですが、
tabPageに配置しているコントロールの編集を不可(読み取り専用)にしようとしています。
配置しているコントロールはComboBox、DomainUpDown、RadioButton、DataGridView、Label、GroupBoxです。

編集できなくするために各コントロールのEnabledをfalseに設定すると、文字がグレーになってしまい見にくくなります。
背景色だけ変更する方法は見つけたのですが、文字色はそのままだったので見にくいままでした。
また各コントロール1つづつに設定するのも設定忘れがありそうだと思い調べたところ、
tabPageにEnableの設定ができることを見つけたので設定しましたが、
まとめて設定はできたものの文字はグレーで見にくいままでした。

以前、C++でダイアログに対してEnableWindow(FALSE)を設定すると、各コントロールの背景色、文字色はそのままで編集できなくなった覚えがあるのですが、
これのC#版はあるのでしょうか?

もしもない場合は、tabPageに対するキー入力、マウスクリックを無効にしたいのですが、
まとめて無効にする方法はあるのでしょうか?

環境はVS2005です。
宜しくお願いします。
引用返信 編集キー/
■41706 / inTopicNo.2)  Re[1]: tabPageの読み取り専用設定の方法について
□投稿者/ やじゅ (1344回)-(2009/09/28(Mon) 21:47:17)
やじゅ さんの Web サイト
No41701 (プリ太 さん) に返信
> 現在フォームにタブコントロールを配置し、そのtabPageにコントロールを配置しているのですが、
> tabPageに配置しているコントロールの編集を不可(読み取り専用)にしようとしています。
> 配置しているコントロールはComboBox、DomainUpDown、RadioButton、DataGridView、Label、GroupBoxです。
> 編集できなくするために各コントロールのEnabledをfalseに設定すると、文字がグレーになってしまい見にくくなります。

TabControl から継承したカスタム コントロールの WndProc メソッドをオーバーライドして、
KEYDOWN、HITTEST 系のメッセージを無視するとか



引用返信 編集キー/
■41713 / inTopicNo.3)  Re[2]: tabPageの読み取り専用設定の方法について
□投稿者/ プリ太 (72回)-(2009/09/29(Tue) 09:09:39)
やじゅ さん ありがとうございます。

C#にはEnableWindow(FALSE)のようなものはないのでしょうか。

>>現在フォームにタブコントロールを配置し、そのtabPageにコントロールを配置しているのですが、
>>tabPageに配置しているコントロールの編集を不可(読み取り専用)にしようとしています。
>>配置しているコントロールはComboBox、DomainUpDown、RadioButton、DataGridView、Label、GroupBoxです。
>>編集できなくするために各コントロールのEnabledをfalseに設定すると、文字がグレーになってしまい見にくくなります。
>
> TabControl から継承したカスタム コントロールの WndProc メソッドをオーバーライドして、
> KEYDOWN、HITTEST 系のメッセージを無視するとか

EnableWindow(FALSE)のようなものが見当たらなかったので、メッセージを横取りする方法を考慮し始めていました。
フォームのメッセージはWndProcをoverrideして取れることがわかったのですが、これだと、フォームに配置してるコントロールはとれず、なぜだろう?と詰まっていました。

コントロールを継承しないと各コントロールのWndProcはoverride出来ないのでしょうか?
現在のままではコントロールのWndProcはoverride出来ないのでしょうか?
引用返信 編集キー/
■41736 / inTopicNo.4)  Re[3]: tabPageの読み取り専用設定の方法について
□投稿者/ プリ太 (73回)-(2009/09/29(Tue) 15:02:06)
プリ太 です。

タブコントロール上に配置しているコントロールの一括読み取り専用設定についてですが、
コントロールによってはデータ切り替えのために読み取り設定しないものもあるため、
各コントロールを継承したカスタムコントロールを作成し、WndProcをoverrideして
キー入力、マウス入力を無効にする方法で設定することにしました。

ありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -