2017-07-26 38 views
1

在Form1和textBox1上都啓用AllowDrop。事件已啓用,並在執行DragDrop和DragEnter時啓動。我已經嘗試重新安排代碼,以便textBox1_DragEnter位於textBox1_DragDrop之前,但不起作用。這段代碼有什麼問題?爲什麼不啓用DragDrop文本框接受文件?

private void textBox1_DragDrop(object sender, DragEventArgs e) 
{ 
    FileInfo fi = new FileInfo((string)e.Data.GetData(DataFormats.FileDrop)); 
    byte[] ba = Encoding.Default.GetBytes(fi.OpenText().ToString().ToCharArray()); 
    textBox1.Text = ba.ToString(); 
} 

private void textBox1_DragEnter(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
    { 
     string file = (string)e.Data.GetData(DataFormats.FileDrop); 
     if (Path.GetExtension(file) != "dat") 
     { 
      s = "broken file"; 
     } 
    } 
} 
+0

你必須向我們展示你的「未顯示」代碼。 – LarsTech

+0

我加了。抱歉。 – snorepion

+0

如果您打開了UAC並以管理員身份運行該程序,則無法將某些內容從Windows資源管理器拖放到表單上。 – Connor

回答

0

必須設置在DragEnter事件影響的屬性:

void textBox1_DragEnter(object sender, DragEventArgs e) { 
    e.Effect = DragDropEffects.Copy; 
    // your code... 
} 
+0

謝謝。這允許它接受數據,但它不顯示。不過,這是一個單獨的問題。我將着手調試它。 – snorepion

相關問題