我正在尝试在我的应用程序中实现拖放。我需要能够获取我以编程方式添加到 a的UserControl
(在我的情况下) (它又位于 a 内)。PipelineTask
FlowLayoutPanel
TabPage
我将我添加PipelineTask
到的方法FlowLayoutPanels
:
private void fillPipeline()
{
flowLayoutPanel1.Controls.Clear();
flowLayoutPanelNonIssues.Controls.Clear();
foreach (FullTask task in pipelineTasks)
{
PipelineTask ts = new PipelineTask(task);
ts.MouseDown += ts_MouseDown;
if (task.TaskType == "Driver Issue")
{
flowLayoutPanel1.Controls.Add(ts);
}
else
{
flowLayoutPanelNonIssues.Controls.Add(ts);
}
}
}
MouseDown
方法:
private void ts_MouseDown(object sender, MouseEventArgs e)
{
PipelineTask ts = sender as PipelineTask;
ts.DoDragDrop(ts, DragDropEffects.Move);
}
但是该MouseDown
事件根本没有触发。我的上面UserControl
有一个Panel
充满了整体的东西UserControl
,我猜这可能是问题所在。有没有人可以帮助我解决这个问题?如果我对上述问题的看法是正确的,那么如何处理这个问题并抓住它UserControl
也可以。谢谢
编辑
我通过删除填充我的 UserControl 的面板暂时解决了这个问题。所以很明显这就是问题所在。但是,无需移除面板即可解决此问题。