- - PR -
パネル上のテキストボックスを全て入力不可に
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-08-30 16:18
こんにちは。
VB2005のアプリです。 FormにTableLayoutPanelを配置し、 TextBoxを2列X6行配置しました。 全てのTextBoxを入力不可にしたいのですが 単独の項目であれば、ReadOnly = Trueにするのでしょうが TableLayoutPanelないのTextBoxを For Each でLOOPさせ1つずつReadOnly = Trueする他に できないでしょうか? できればTableLayoutPanelに何かをセットし 含まれるTextBox全てが入力不可になるとよいのですが。 もちろんTextBoxの内容は通常通りに表示はさせたいのです。 | ||||
|
投稿日時: 2007-08-30 16:36
TableLayoutPanel.Enabled=False でどうでしょうか。 | ||||
|
投稿日時: 2007-08-30 17:30
返答ありがとうございます。
Enabled=False にするとTextBoxのTextが 薄く表示されてしまいますよね。 表示は通常のままにしたいのです。 | ||||
|
投稿日時: 2007-08-30 17:51
では素直に回したらいいのではないでしょうか。 Disableだけど表示は一見普通のままっていう手もありますが、 いいデザインとはいえないと思います。 愚直からはじめるのも悪くはないと思います。 あれこれ悩むより、成果は早くでますし。 再利用したい、たくさんある、などの場合は TableLayoutPanelを継承して、 ReadOnlyプロパティを実装すればいいと思います。 | ||||
|
投稿日時: 2007-08-30 17:59
標準のプロパティ設定では無理です。
この辺が参考になるかと http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=33650&forum=7 | ||||
|
投稿日時: 2007-08-31 14:56
たくさんの回答ありがとうございます。
考えてみます。 | ||||
|
投稿日時: 2007-08-31 19:53
れいさんの回答で 再利用したい、たくさんある、などの場合は TableLayoutPanelを継承して、 ReadOnlyプロパティを実装すればいいと思います。 とありますが、もう少し具体的に教えて頂けないでしょうか? | ||||
|
投稿日時: 2007-08-31 20:32
ReadOnly プロパティの値書き換え時に
を内部で実行すればいいでしょう。 |