解决winform中的listbox实现拖拽时,遇到combox控件会闪烁的问题

文章目录


前言

winform中的listbox控件实现拖拽时,如果窗体内含有Combox控件时,当选中listbox的项时,再点击combox的下拉按钮,listbox里面的项会闪!


一、为什么会闪?

当按下Combox控件的下拉按钮时,控件会通知窗体进行重绘,

也有可能Combox下拉是有listbox实现的所以有冲突。

二、解决办法

1、在窗体加一个其他控件,例如按钮

2、在四个事件中添加this.button1.Focus();将焦点先转移到按钮上

c 复制代码
private void Listtarget_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Move;
    this.button1.Focus();
}

为什么要这样,因为当焦点转移到其他控件上时,再点击combox的下拉按钮listbox就不会闪。

效果图