【发布时间】:2011-10-11 03:37:00
【问题描述】:
我在 Windows 窗体上有一个 c# 中的用户控件,拖放事件仅在控件边缘触发,有没有人知道是什么原因导致我发疯!?
private void flowDiagram1_DragEnter(object sender, DragEventArgs e)
{
if(e.Data.GetDataPresent(DataFormats.Text))
e.Effect = DragDropEffects.Move;
else
e.Effect = DragDropEffects.None;
}
private void flowDiagram1_DragOver(object sender, DragEventArgs e)
{
if (!m_bDragging)
flowDiagram1_DragDrop(sender, e);
}
private void flowDiagram1_DragDrop(object sender, DragEventArgs e)
{
MessageBox.Show("Drop");
}
【问题讨论】:
-
无法为控件提供代码,它只是一个我正在使用的 dll,但即使我创建自己的控件,它似乎也会发生,但是当我拖放时,我只需执行以下操作
-
private void flowDiagram1_DragEnter(object sender, DragEventArgs e) { if(e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Move;否则 e.Effect = DragDropEffects.None; } private void flowDiagram1_DragOver(object sender, DragEventArgs e) { if (!m_bDragging) flowDiagram1_DragDrop(sender, e); } private void flowDiagram1_DragDrop(object sender, DragEventArgs e) { MessageBox.Show("Drop"); }
-
问题只有在放到控件上时才会出现,如果它只是一个面板,那么它就可以了
标签: c# winforms drag-and-drop controls