CheckListBox previewkeydown没有用鼠标按钮触发

时间:2014-02-07 01:13:43

标签: c# winforms events mouse

当我在复选框列表中使用鼠标单击事件时,结果取决于之前的选择。因此,我需要带有鼠标事件的previewkeydown。

没有编译或运行时错误。 但这不起作用。事件正在处理所有其他键但不是鼠标键!

任何帮助?

private void chckListBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    {   if (e.KeyCode == Keys.LButton)
        MessageBox.Show(" click ");
        // process code here 
    }

2 个答案:

答案 0 :(得分:0)

正如@DonBoitnott所说,使用标准winform MouseDownMouseUp事件捕获鼠标点击次数

喜欢

private void frm_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
{
      // write your code
}

答案 1 :(得分:0)

您想要在当前点击的项目之前捕获之前的值吗?

似乎没有与您相关的鼠标相关事件,但您可以使用事件的组合。由于MouseCLick事件在ItemCheck之前触发,因此这样的事情应该有效。

(我假设你的复选框只是一个字符串列表。)

private string previousValue;
private bool isLeftButton;

private void chckListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (isLeftButton)
    {
        // do something with previousValue;
    }

    previousValue = Convert.ToString(chckListBox.SelectedItem);
}

private void chckListBox_MouseClick(object sender, MouseEventArgs e)
{
    isLeftButton = (e.Button == MouseButtons.Left);
}