我有ListBox
SelectionMode = MultiExtended
。我希望ListBox的默认行为是“追加”。换句话说,按住控制键时所获得的行为应该是ListBox的默认,被动功能。
我该怎么做?我是否需要手动订阅“Mouse Down”和“Key Down”事件?我缺少一个设置吗?
感谢。
答案 0 :(得分:2)
丑陋的解决方案,但我能做的最好。
[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
public const byte KEYEVENTF_KEYUP = 0x02;
public const int VK_CONTROL = 0x11;
private void listBox1_MouseEnter(object sender, EventArgs e)
{
keybd_event(VK_CONTROL, (byte)0, 0, 0);
}
private void listBox1_MouseLeave(object sender, EventArgs e)
{
keybd_event(VK_CONTROL, (byte)0, KEYEVENTF_KEYUP, 0);
}
答案 1 :(得分:0)
使用MultiSimple
模式
http://msdn.microsoft.com/en-us/library/system.windows.forms.selectionmode(v=vs.80).aspx
SelectionMode = SelectionMode.MultiSimple