我有一個用ComboBox自定義的OpenFileDialog(VS2008,C#,Windows窗體)。 ComboBox將有一個用戶可以選擇的路徑列表。以編程方式在打開文件對話框中更改目錄
我的問題,有沒有一種方法可以改變打開文件對話框中的目錄,以指向組合框選定項目中的路徑。
InitialDirectory只在我打開對話框之前工作,我想要一種在對話框打開後以編程方式更改目錄的方法。
感謝
我有一個用ComboBox自定義的OpenFileDialog(VS2008,C#,Windows窗體)。 ComboBox將有一個用戶可以選擇的路徑列表。以編程方式在打開文件對話框中更改目錄
我的問題,有沒有一種方法可以改變打開文件對話框中的目錄,以指向組合框選定項目中的路徑。
InitialDirectory只在我打開對話框之前工作,我想要一種在對話框打開後以編程方式更改目錄的方法。
感謝
如果您使用Vista或Windows 7與.NET 3.5 SP1我建議您在OpenFileDialog上使用CustomPlaces屬性而不是自定義組合框。
見(用於WPF)這個MSDN文章:http://msdn.microsoft.com/en-us/library/microsoft.win32.filedialog.customplaces(v=VS.100).aspx
還是這個MSDN文章(適用於Windows窗體):http://msdn.microsoft.com/en-us/library/system.windows.forms.filedialog.customplaces(v=VS.100).aspx
在Windows 2000和XP,也可以自定義的地方酒吧。但它更加困難,需要你使用一些C++代碼(通過CLI/C++可能是最好的)。該技巧在本MSDN文章中有詳細描述:http://msdn.microsoft.com/en-us/magazine/cc300434.aspx
如果您已經使用已添加到OpenFileDialog的組合框,但您可能只需要知道發送到對話框的Windows消息。恐怕我不知道你需要發送哪條消息。公共打開/保存對話框的令人討厭的內部Win32 API詳細信息在此處詳述如下:http://msdn.microsoft.com/en-us/library/ms646960(VS.85).aspx
如果您可以確定將哪些消息發送到窗口,則可能的做法是將文件名文本字段填充到目錄你想切換到模擬OK按鈕點擊。如果你這樣做,該對話框將切換到該目錄。
將消息發送到此窗口可能會要求您不要直接使用OpenFileDialog,而是對其所基於的抽象FileDialog類進行子類化。
只需設置openFileDialog1
private void button1_Click(object sender, System.EventArgs e)
{
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = cmbPath.SelectedValue.ToString();
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
openFileDialog1.FilterIndex = 2 ;
openFileDialog1.RestoreDirectory = true ;
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
using (myStream)
{
// Insert code to read the stream here.
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
組合框以與打開的對話框相同的自定義形式嵌入。因此,設置初始目錄不會工作,因爲對話框已經打開。 – ababeel 2010-05-03 08:03:22
的InitialDirectory財產前面已經說過InitialDirectory工作的前手,但爲什麼要更改文件夾後記? FileOpenDialog是一個模態對話框,因此用戶不能使用應用程序中的任何其他對象。你不想設置文件夾的好處和原因是什麼?看來你使用錯誤的工具來完成工作。
這將如何工作?請解釋更多。 – leppie 2010-05-03 07:36:36