我正在尝试创建一个 Windows 窗体,我可以将文件/文件夹拖放到该窗体上。
我在 WinForms 应用程序中有以下代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
Debug.Print("DragEnter");
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
MessageBox.Show("Dropped!");
}
}
我已将 AllowDrop 属性设置为 true。 我试过在 Visual Studio 中调试运行应用程序。 根据对其他类似问题的回答,我尝试以管理员身份运行编译后的 exe。 我试过以管理员身份不运行编译后的 exe。
但是无论我做什么,我都无法触发 DragDrop 事件。但是,DragEnter 事件会触发。我错过了什么?
最佳答案
您的 DragDropEffect
设置是否正确?尝试将它放在 DragEnter 事件处理程序方法中:
private void Form1_DragEnter(object sender, DragEventArgs e)
{
Console.WriteLine("DragEnter!");
e.Effect = DragDropEffects.Copy;
}
默认情况下,它被设置为 DragDropEffects.None
,因此不会触发 Drop 事件。
关于c# - 拖放在 C# Winforms 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26628492/