WinForms ListBox追加选择

时间:2012-07-05 18:40:10

标签: c# winforms listbox

我有ListBox SelectionMode = MultiExtended。我希望ListBox的默认行为是“追加”。换句话说,按住控制键时所获得的行为应该是ListBox的默认,被动功能。

我该怎么做?我是否需要手动订阅“Mouse Down”和“Key Down”事件?我缺少一个设置吗?

感谢。

2 个答案:

答案 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