2012-07-05 48 views
0

我有一個ListBoxSelectionMode = MultiExtended。我希望ListBox的默認行爲被「追加」。換句話說,按住控制鍵時的行爲應該是ListBox的默認被動功能。WinForms列表框追加選擇

我該怎麼做?我是否需要手動訂閱「Mouse Down」和「Key Down」事件?有沒有我錯過的設置?

謝謝。

回答

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); 
    }