我有一個RichTextBox,我想允許用戶將文件從磁盤拖放到。所有應該出現在文本框中的是文件名。此代碼當前將"System.String[]"
添加到文本框而不是文件名。當我將DataFormats::FileDrop
更改爲DataFormats::Text
,因爲this MSDN似乎暗示,我得到一個NULL解引用錯誤。拖放文件名Visual(託管)C++
RichTextBox名稱是rtbFile
。在我的構造函數中,我有:
this->rtbFile->AllowDrop = true;
我設置這樣的事件(InitializeComponents內):
this->rtbFile->DragEnter += gcnew System::Windows::Forms::DragEventHandler(this, &VanicheMain::rtbFile_DragEnter);
this->rtbFile->DragDrop += gcnew System::Windows::Forms::DragEventHandler(this, &VanicheMain::rtbFile_DragDrop);
的功能定義如下:
void rtbFile_DragEnter(System::Object ^sender, System::Windows::Forms::DragEventArgs^e) {
if (e->Data->GetDataPresent(DataFormats::FileDrop))
e->Effect = DragDropEffects::Copy;
else
e->Effect = DragDropEffects::None;
}
System::Void rtbFile_DragDrop(System::Object ^sender, System::Windows::Forms::DragEventArgs ^e){
int i = rtbFile->SelectionStart;;
String ^s = rtbFile->Text->Substring(i);
rtbFile->Text = rtbFile->Text->Substring(0, i);
String ^str = String::Concat(rtbFile->Text, e->Data->GetData(DataFormats::FileDrop)->ToString());
rtbFile->Text = String::Concat(str, s);
}
對,我正在使用FileDrop。問題是它打印出「System.String []」而不是文件名。我真的很想獲得文件名。 – Goodies
你能舉個例子嗎? – Goodies
LoadFile函數將文件路徑作爲參數。另外,^ str變量顯然不是一個數組。 – Goodies