我在Winforms中有一个ComboBox,我从下拉列表中将项目拖到一个picturebox上。如果我直接从组合(右或左)拖出一件项目,则一旦被选定的fires。但是,如果我碰巧在光标离开组合之前将下拉物品悬停在下拉菜单中,则事件将两次射击。我已经尝试了几乎所有我发现的建议。而且,是的,选定的Changected以相同的方式工作。对解决方案有任何想法吗?
有趣的是,它如何帮助发布问题!我自己发现了一个可用的解决方法:首先,我添加了最初设置为0的全局整数准备下一个拖动操作),两次执行了代码。解决方案是仅在组合事件中进行重置,因为这发生在变化事件之前。然后,它将在我尝试启动下一个拖动操作时重置。
int runonce = 0;
private void cmbTags_MouseClick(object sender, MouseEventArgs e)
{
runonce = 0;
}
private void cmbTags_SelectionChangeCommitted(object sender, EventArgs e)
{
runonce++;
if (runonce == 1)
{
// My cmbTags_SelectionChangeCommitted-code
}
}