本人在网上反复查找,主要用下面方法,均未成功,望高人指点迷津
方法一:能触发事件,但无法改变选择(选择始终是第一项)
SendMessage(hComboBox, CB_SHOWDROPDOWN, 1, 0);
SendMessage(hComboBox, CB_SETCURSEL, 2, 0);
ShowWindow(hComboBox, SW_NORMAL);
SetForegroundWindow(hComboBox);
Thread.Sleep(100);
Support.SendMessage(hComboBox, WM_KEYDOWN, VK_RETURN, 0);
Thread.Sleep(100);
Support.SendMessage(hComboBox, WM_KEYUP, VK_RETURN, 0);
方法二:不知道其中一行代码 Tools.ToD(cbn_selchange, 16)
IntPtr mwh = (IntPtr)Convert.ToInt32(handle); //ComboBox的句柄
int result = SendMessage(hComboBox, CB_SETCURSEL, index, 0); //改变ComboBox的值
int mwh_p = GetWindowLong(hComboBox, -8); //获取ComboBox所属窗口的句柄
IntPtr mwh2 = (IntPtr)Convert.ToInt32(mwh_p); //转换ComboBox所属窗口的句柄
string cbn_selchange;
int cb_id = GetWindowLong(hComboBox, -12); //获取ComboBox的控件ID
cbn_selchange = "0001" + string.Format("{0:X4}", cb_id);
IntPtr s1 = (IntPtr)Convert.ToInt32(Tools.ToD(cbn_selchange, 16));
SendMessage(mwh2, WM_COMMAND, s1, hComboBox); //给ComboBox所属窗口发送WM_COMMAND命令
方法一:能触发事件,但无法改变选择(选择始终是第一项)
SendMessage(hComboBox, CB_SHOWDROPDOWN, 1, 0);
SendMessage(hComboBox, CB_SETCURSEL, 2, 0);
ShowWindow(hComboBox, SW_NORMAL);
SetForegroundWindow(hComboBox);
Thread.Sleep(100);
Support.SendMessage(hComboBox, WM_KEYDOWN, VK_RETURN, 0);
Thread.Sleep(100);
Support.SendMessage(hComboBox, WM_KEYUP, VK_RETURN, 0);
方法二:不知道其中一行代码 Tools.ToD(cbn_selchange, 16)
IntPtr mwh = (IntPtr)Convert.ToInt32(handle); //ComboBox的句柄
int result = SendMessage(hComboBox, CB_SETCURSEL, index, 0); //改变ComboBox的值
int mwh_p = GetWindowLong(hComboBox, -8); //获取ComboBox所属窗口的句柄
IntPtr mwh2 = (IntPtr)Convert.ToInt32(mwh_p); //转换ComboBox所属窗口的句柄
string cbn_selchange;
int cb_id = GetWindowLong(hComboBox, -12); //获取ComboBox的控件ID
cbn_selchange = "0001" + string.Format("{0:X4}", cb_id);
IntPtr s1 = (IntPtr)Convert.ToInt32(Tools.ToD(cbn_selchange, 16));
SendMessage(mwh2, WM_COMMAND, s1, hComboBox); //给ComboBox所属窗口发送WM_COMMAND命令
解决方案 »
- 请教:按不同的答案跳转问题
- 关于判断不允许在逗号后面是空值!请问如何实现!
- RTF中的图片字符串怎么变成Image类
- 请问如何解决,当把Session放在Sessionstate中的时候,不触发 Session_OnEnd()事情的处理
- 能否在XSLT文件里将xml文件里的内容HtmlDecode化
- WPF中DataGrid的获取莫一列求和的问题
- UTF8Encoding(true)中的true是什么意思呢,
- nean进来
- c#的运行环境是不是一定要.net框架的支持?
- 初级问题请指教!如何在程序中等待5秒,再执行下一条语句?
- 上传图片出现 GDI+ 中发生一般性错误
- C# DataGridView
ShowWindow(hComboBox, SW_NORMAL);
SetForegroundWindow(hComboBox);
Thread.Sleep(100);
SendMessage(hComboBox, WM_KEYDOWN, VK_RETURN, 0);
Thread.Sleep(100);
SendMessage(hComboBox, WM_KEYUP, VK_RETURN, 0);
就又变成选择了第一项的,真郁闷。另外这个COMBOBOX是只读的,不知道有没有关系到