タイトル : 無茶してみた 投稿日 : 2007/06/14(Thu) 15:30 投稿者 : 魔界の仮面弁士
> 案3) System.Windows.Forms.ComboBox+ComboBoxChildNativeWindow オブジェクトを直接操作。 Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click ComboBox1.DropDownStyle = ComboBoxStyle.DropDown ComboBox1.BackColor = Color.White DisableComboBox(ComboBox1) End Sub Private Sub DisableComboBox(ByVal comboBox As ComboBox) 'コンボボックス自体を使用不可にする。 comboBox.Enabled = False Dim field As FieldInfo = comboBox.GetType().GetField("childEdit", _ BindingFlags.GetField Or BindingFlags.NonPublic Or BindingFlags.Instance) Dim childEdit As NativeWindow = DirectCast(field.GetValue(comboBox), NativeWindow) If childEdit IsNot Nothing Then '内部テキストボックスのみ、使用可能に戻す。 EnableWindow(childEdit.Handle, True) End If End Sub Private Declare Auto Function EnableWindow Lib "user32" (ByVal hWnd As IntPtr, _ <MarshalAs(UnmanagedType.Bool)> ByVal bEnable As Boolean) As _ <MarshalAs(UnmanagedType.Bool)> Boolean |