.NET CF为组合框设置'DroppedDown'

Kar*_*arl 4 c# combobox compact-framework

我想在移动程序中打开我的程序组合框(.net cf 3.5).

但是不存在像cmbBox.DroppedDown紧凑框架中的 属性Accesing WinCE ComboBox DroppedDown属性(.NET CF 2.0) 但是我不想获得当前状态,而是设置它.

我该怎么做?

Sta*_*Who 7

使用CB_SHOWDROPDOWN = 0x014F消息:

    public const int CB_GETDROPPEDSTATE = 0x0157;
    public static bool GetDroppedDown(ComboBox comboBox)
    {
        Message comboBoxDroppedMsg = Message.Create(comboBox.Handle, CB_GETDROPPEDSTATE, IntPtr.Zero, IntPtr.Zero);
        MessageWindow.SendMessage(ref comboBoxDroppedMsg);
        return comboBoxDroppedMsg.Result != IntPtr.Zero;
    }

    public const int CB_SHOWDROPDOWN = 0x014F;
    public static bool ToogleDropDown(ComboBox comboBox)
    {
        int expand = GetDroppedDown(comboBox) ? 0 : 1;
        int size = Marshal.SizeOf(new Int32());
        IntPtr pBool = Marshal.AllocHGlobal(size);
        Marshal.WriteInt32(pBool, 0, expand);  // last parameter 0 (FALSE), 1 (TRUE)
        Message comboBoxDroppedMsg = Message.Create(comboBox.Handle, CB_SHOWDROPDOWN, pBool, IntPtr.Zero);
        MessageWindow.SendMessage(ref comboBoxDroppedMsg);
        Marshal.FreeHGlobal(pBool);
        return comboBoxDroppedMsg.Result != IntPtr.Zero;
    }
Run Code Online (Sandbox Code Playgroud)