【发布时间】:2016-01-26 17:32:42
【问题描述】:
正如标题所示,我无法让 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 方法,它只是将颜色更改为不同的颜色。
需要注意的一点是,我在按钮上拖动的项目比按钮本身大。不确定这是否会产生影响。
【问题讨论】:
-
代码按发布的方式工作。您是否已安排好活动:
button1.DragOver += ShipOver;? -
我没有,这需要在哪里发生,因为我有 100 个按钮。我真的不想写 100 行代码。
-
所有按钮是否都在同一个容器中,如表单或面板?如果是这样,您可以轻松循环该集合。
-
是的。我需要在构造函数中连接事件吗?
-
是的。如果您没有在例如 xaml 文件中完成,则必须遍历所有按钮并添加事件。
标签: c# drag-and-drop