С# перетащить файлы в форму
Как я могу загрузить файлы в форму путем перетаскивания?
Какое событие появится?
Какой компонент я должен использовать?
И как определить имя файла и другие свойства после перетаскивания его в форму?
Спасибо!
Код
private void panel1_DragEnter(object sender, DragEventsArgs e){
if (e.Data.GetDataPresent(DataFormats.Text)){
e.Effect = DragDropEffects.Move;
MessageBox.Show(e.Data.GetData(DataFormats.Text).toString());
}
if (e.Data.GetDataPresent(DataFormats.FileDrop)){
}
}
ok, это работает.
Как насчет файлов? Как получить имя файла и расширение?
и это только действие dragEnter
.
Ответы
Ответ 1
Этот код будет прокручиваться и печатать полные имена (включая расширения) всех файлов, перетаскиваемых в ваше окно:
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string filePath in files)
{
Console.WriteLine(filePath);
}
}
Ответ 2
Проверьте приведенную ниже ссылку для получения дополнительной информации
http://doitdotnet.wordpress.com/2011/12/18/drag-and-drop-files-into-winforms/
private void Form2_DragDrop(object sender, DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop));
foreach (string fileLoc in filePaths) {
// Code to read the contents of the text file
if (File.Exists(fileLoc)) {
using (TextReader tr = new StreamReader(fileLoc)) {
MessageBox.Show(tr.ReadToEnd());
}
}
}
}
}
Спасибо.