设置CheckedListBox SelectedIndex而不触发SelectedIndexChanged事件

kkw.

成员
加入
2013年11月15日
消息
7
编程经验
10+
大家好!

我正在尝试弄清楚如何将SelectedIndex设置为-1而不生成事件。

在VB6中,我将使用该功能:

C#:
Call SendMessageBynum(TargetList.hwnd, LB_SETCURSEL, SetValue, 0)

但是,我无法找到关于如何在C#中使用VB6函数的指令。

有人可以指出我的正确方向吗?

谢谢!
 

kkw.

成员
加入
2013年11月15日
消息
7
编程经验
10+
所以,通过这个论坛上的一些帖子来看看,我遇到了一个提到使用dllimport的帖子。
进一步调查后,我发现我实际上可以使用SendMessagebyNum功能!
实际上,它的工作原理是,它是由它的别名 - sendmessagea调用。
这是我的实现:
C#:
[COLOR=#0000ff][COLOR=#0000ff]public class [/COLOR][/COLOR]Bynum
{
   [DllImport("user32.dll")]
      [COLOR=#0000ff][COLOR=#0000ff]public static extern [/COLOR][/COLOR][COLOR=#2b91af][COLOR=#2b91af]IntPtr[/COLOR][/COLOR] SendMessageA([COLOR=#2b91af][COLOR=#2b91af]IntPtr[/COLOR][/COLOR] hWnd, [COLOR=#2b91af][COLOR=#2b91af]UInt32[/COLOR][/COLOR] wMsg, [COLOR=#2b91af][COLOR=#2b91af]Int32[/COLOR][/COLOR] wParam, [COLOR=#2b91af][COLOR=#2b91af]Int32[/COLOR][/COLOR] lParam);
      [COLOR=#0000ff][COLOR=#0000ff]public const int[/COLOR][/COLOR] LB_SETCURSEL = 0x0186;
}

用法:
C#:
ByNum.SendMessageA(checkedListBox1.Handle, 0x0186, -1, 0);
我使用lb_setcursel的值而不是名称...
 
最佳 底部