
お世話になります。VB2005での質問です。
VB6.0の時は、Frameの上にTextBoxを貼り付け、そのFrameのEnableをTrueにしたりFalseにしたりして、入力の規制をかけていました。
そうすると、TextBoxの外観を変えずに規制をかけることができましたし、入力項目のいくつかをひとつのFrameに乗せておけば、一度に全体を規制することができました。Frameもラインを消すことができましたので、見た目もきれいにできていたのですが、VB2005にはそのFrameがないようですが、同じような機能を持ったコントロールはないでしょうか。
GroupBoxを使用した場合、そのBoxのEnableをFalseにすると、上に乗せたTextBoxの色がグレーに変わってしまいますし、GroupBoxにはプロパティにBorderStyleが見当たらず、ラインを消す方法もわかりません。
とても困っています。よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
連続投稿すみません。
考察が足りませんでした...
ただ Panel コントロールを使っただけではだめですね。
背景色は変更できないので、#1 さんの指定されている
URL の通り、前景色は自分で描画するか、
もしくは動的に Label 等のコントロールと摩り替えてみせる
しかなさそうです。
Private Sub Panel1_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.EnabledChanged
If Not Me.Panel1.Enabled Then
For Each ctrl As Control In Me.Panel1.Controls
If TypeOf ctrl Is TextBox Then
Dim t As TextBox = DirectCast(ctrl, TextBox)
t.Enabled = True
t.ReadOnly = True
t.BackColor = System.Drawing.SystemColors.Window
End If
Next
Else
For Each ctrl As Control In Me.Panel1.Controls
If TypeOf ctrl Is TextBox Then
Dim t As TextBox = DirectCast(ctrl, TextBox)
t.Enabled = True
t.ReadOnly = False
End If
Next
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Panel1.Enabled = Not Me.Panel1.Enabled
End Sub
具体的にコードまで書いてくださり、ありがとうございました。
現在VB6から2005に変えたばかりで、本を見ながらコーディングしているのですが、
なかなか目的とするコードが書けず(VB6の癖が出てしまいます)困っていました。
この方法ならパネルに乗せて複数のコントロールを規制できそうですね。
とてもわかりやすく、他でも応用ができそうで助かりました。
ありがとうございました。
No.2
- 回答日時:
お世話になります。
Panel(System.Windows.Forms.Panel)
はいかがでしょうか。
参考URL:http://msdn2.microsoft.com/ja-jp/library/system. …
No.1
- 回答日時:
> TextBoxの外観を変えずに規制をかけることができましたし
> そのBoxのEnableをFalseにすると、上に乗せたTextBoxの色がグレーに変わってしまいますし
VB6->VB.NETになった際、仕様が変更され、
このテクニック(コンテナコントロールのEnabled=Falseにしても、子コントロールの色が変わらない)
自体使えなくなりました。
> 同じような機能を持ったコントロールはないでしょうか
よって、どのコントロールをコンテナにしても、「できません」。
「色の問題」だけなら方法が無いわけではありません。
「ReadOnly」にするか、
「OnEnabledChanged」をオーバーライドして、自分で描画する
と言う方法です。
#他の方のサイトを紹介するのは心苦しいのですが・・・
参考URL:http://dobon.net/vb/dotnet/control/tbenabledfals …
回答ありがとうございます。
やはり、単純に操作するコントロールはなくなってしまったのですね。
見た目を変えず、入力だけ不可にしたいので、ReadOnlyを使用使用と思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Visual Basic(VBA) Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法 5 2022/08/17 14:27
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- 政治 官僚政治と反民主主義管理システムについてどう思われますか? 3 2022/08/23 19:19
- アニメ ワールドトリガーに出てくるボーダー機関って、どういう運営してんの? ワールドトリガーってアニメを3期 1 2022/11/30 22:53
- 政治 個人的に、憲法改正案を考えてみました。 意見を聞かせてください。 特に、9条(第2章 - 戦争の放棄 3 2023/02/22 22:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.NETについて質問です。
-
リッチエディットのUPDATEメッ...
-
EXCEL(2003)にてアンケート作...
-
WebBrowserコントロールでExplo...
-
VC++で作ったActiveXコントロー...
-
エクセル・VBA CheckBoxのオブ...
-
TextBoxの入力規制
-
iPhoneのコントロールセンター...
-
ユーザーコントロールのプロパ...
-
オプションボタン(配列)のチ...
-
chr関数の呼び出しで「プロ...
-
RadioButtonについて教えてくだ...
-
画面最大化のサイズ合わせたい
-
「シートを最前面」にしたいの...
-
実行画面が崩れてしまう
-
コントロールのグループ化
-
NASAスペースシャトル発着場の位置
-
ご質問
-
バーコードを印刷したい
-
VBかVBAでIEのようなWEBブラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
VBA ユーザーフォームの Keypre...
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
エクセル コントロールツール...
-
ユーザーフォームで動的(Me.Con...
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
excel vbaでユーザーフォームに...
おすすめ情報