Accesing WinCE ComboBox DroppedDown property (.NET CF 2.0)
I'm implementing custom behavior sub-classing the form controls, but I cannot manage to access the DroppedDown property of the ComboBox. Looking in the help, it's supposed to be supported in CF.NET 2.0:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace xCustomControls
{
public partial class xComboBox : System.Windows.Forms.ComboBox
{
private ComboBox comboBox1;
public xComboBox()
{
InitializeComponent();
this.KeyDown += new KeyEventHandler(this.KeyDownHandler);
}
开发者_Python百科 private void KeyDownHandler(object sender, KeyEventArgs e)
{
// DroppedDown doesn't appear in the IntelliSense of ComboBox.
// or this.comboBox1.
if (((ComboBox)sender).DroppedDown) // fail!
return;
switch (e.KeyData)
{
case Keys.Up:
case Keys.Enter:
case Keys.Down:
e.Handled = true;
this.Parent.SelectNextControl((Control)sender, e.KeyData != Keys.Up, true, true, true);
...
fails with 'System.Windows.Forms.ComboBox' does not contain a definition for 'DroppedDown' and no extension method 'DroppedDown' accepting a first argument of type 'System.Windows.Forms.ComboBox' could be found
How can I access the property?
TIA, Pablo
The DroppedDown
property is not in the compact-framework, but you can use some thing like this:
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;
}
Taken from: http://msdn.microsoft.com/en-us/netframework/bb735847.aspx
精彩评论