tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 無茶してみた
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。