“拖动”按钮未触发事件 c#
本文关键字:事件 拖动 按钮 | 更新日期: 2023-09-27 18:31:54
正如标题所示,我在使 DragOver 事件正常运行时遇到问题。我在一个表单上有 100 多个按钮,我希望当将图片框拖到它们上面时,它们的颜色会发生变化。我已经设置了所有按钮 AllowDrop = true,并在方法中包含以下代码。
private void ShipOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.None;
Button b = (Button)sender;
b.BackColor = Color.Green;
label22.Text = "";
}
我不明白为什么这行不通。我还有一个 DragLeave 方法,它只是将颜色更改为不同的颜色。
需要注意的一件事是,我在按钮上拖动的项目比按钮本身大。不确定这是否会产生影响。
您需要将事件连接到您的方法。 如果所有按钮都在单个面板中,则可以在窗体的构造函数中执行以下操作:
foreach (Button b in panel1.Controls.OfType<Button>()) {
b.DragOver += ShipOver;
}
同样的原则也适用于 DragLeave 事件。