コントロールをロックしたい
現在、VB.NETのWINDOWSアプリケーションで開発しており、DBはSqlserver2005を使用しています。
フォームLoad時に、指定したテキストボックスやボタンをロックする(readonly)共通関数を作成しようと考えています。
そこで、どのように記述すればいいか教えて下さい。
(1)フォームロード時 共通関数LookControlを実行する際、引数にコントロール名を渡したいのですが、
どのようにすればいいでしょうか?
Private Sub フォーム_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'テキストボックスの場合
Call LookControl(???, True) ←コントロール名の渡し方
'コンボボックスの場合
Call LookControl(???, True)
'ボタンの場合
Call LookControl(???, True)
End Sub
(2)共通関数LookControl
どのコントロールが引数で渡されてもロックができる関数を作りたい。
Module mod共通関数_表示
Public Sub LookControl(ByVal pControl As Control, ByVal pReadFlg As Boolean)
Dim Textbox As TextBoxBase
'Dim Combbox As ComboBox
'Dim Bottan As Button
Try
For Each cldControl As Control In pControl.Controls
If pControl.HasChildren = True Then
LookControl(cldControl, pReadFlg)
End If
'
Select Case True
Case TypeOf cldControl Is TextBoxBase
TextBox = DirectCast(cldControl, TextBoxBase)
TextBox.ReadOnly = pReadFlg
Case TypeOf cldControl Is ComboBox
???
Case TypeOf cldControl Is Button
???
End Select
Next
Catch oExcept As Exception
'例外が発生した時の処理
MessageBox.Show(oExcept.ToString, "例外発生")
End Try
End Sub
End Module
お礼
>ロックしてても、プロパティの値を変えれば、位置とか調整できます。 やってみたら、出来ましたね。 一時的にロックを解除して作業します。 ありがとうございました。