Krypton中KryptonListBox单击事件

起因

由于公司一个客户端项目使用的是WinForm,WinForm有一个特点,就是不好看.后来采用Krypton Tookit(免费)界面控件库.在使用KryptonListBox控件时,发现Click事件不会触发.

测试代码

private void Form1_Load(object sender, EventArgs e)
{
    Dictionary<int, string> dic = new Dictionary<int, string>();
    dic.Add(1, "hello csharp");
    dic.Add(2, "hello c");

    KryptonListBox kryptonListBox = new KryptonListBox();
    kryptonListBox.Click += KryptonListBox_Click;

    kryptonListBox.ValueMember = "Key";
    kryptonListBox.DisplayMember = "Value";
    kryptonListBox.DataSource = new BindingSource(dic, null);


    this.panel1.Controls.Add(kryptonListBox);
}

            

private void KryptonListBox_Click(object sender, EventArgs e)
{
    MessageBox.Show("Hello Krypton,click msg");
}

运行效果

Krypton中KryptonListBox控件,单击事件没有触发

临时解决

通过IlSpy反编译ComponentFactory.Krypton.Toolkit动态库,在KryptonListBox控件中,没有找到Click代码.可能是因为项目中使用版本较老.在GitHub在下载最新的源码,一直没下载成功,因为项目着急上线,只能将KryptonListBox替换为ListBox.
秋风 2019-03-13