Tôi đang gặp sự cố khi kéo tệp từ Windows Explorer vào ứng dụng Windows Forms.Kéo và thả từ Windows File Explorer vào một Biểu mẫu Windows không hoạt động
Nó hoạt động tốt khi tôi kéo văn bản, nhưng vì lý do nào đó, nó không nhận ra tệp. Đây là mã thử nghiệm của tôi:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Copy;
}
else if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
}
}
AllowDrop được đặt thành đúng trên Form1 và như tôi đã đề cập, nó hoạt động nếu tôi kéo văn bản vào biểu mẫu, không phải tệp thực.
Tôi đang sử dụng Vista 64 bit ... không chắc chắn liệu đó có phải là một phần của sự cố hay không.
Vâng, điều đó giải đáp được một vấn đề mà tôi đã gặp phải với ứng dụng mà tôi đang làm việc. Một cách giải quyết tốt mà tôi đã tìm thấy cho phép bạn gỡ lỗi ứng dụng và vẫn có thao tác kéo và thả đúng cách là chạy ứng dụng bên ngoài trình gỡ lỗi và sau đó đính kèm trình gỡ lỗi vào tiến trình. – RobH
Trong trường hợp bạn không cần Visual Studio để chạy cao, bạn cũng có thể chỉ cần chạy nó trong chế độ bình thường để kiểm tra kéo thả. Tuy nhiên, tôi sẽ đề nghị cài đặt VSCommands. Nó là một phần mở rộng cho phép bạn chạy một cửa sổ thám hiểm như quản trị cũng như một số công cụ gọn gàng khác, như tự động chọn các cá thể IIS liên quan để đính kèm vào khi gỡ lỗi - trong số những thứ khác. –