2009-10-28 30 views
6

Tôi đang tạo phần mềm cần CHỈ có thể cho phép mọi người chọn tệp và thư mục bằng cách sử dụng OpenFileDialog nằm trong cùng thư mục với chương trình và nằm trong thư mục sâu hơn. Tôi không muốn OpenFileDialog có thể chọn những thứ bên ngoài thư mục hiện tại của chương trình. Điều này có thể thực hiện trong C# bằng cách sử dụng OpenFileDialog không?C# OpenFileDialog Lock To Directory

Xin vui lòng cho tôi biết

Cảm ơn

+0

Retagged từ 'khóa OpenFileDialog để cây thư mục' – pyrocumulus

+2

tôi biết những hộp thoại có thể được ghi đè, và tùy chỉnh .. check this out – Letterman

Trả lời

1

bạn có thể kiểm tra xem con đường là chính xác sau khi chọn

nếu chỉ chấp nhận hoặc gửi hộp thông điệp của mình nói với anh ấy bạn chọn thư mục khác nhau

1

Tôi sợ bạn không thể. Hầu hết mọi người đã tạo hộp thoại tùy chỉnh của riêng họ cho trường hợp này.

+0

này có vẻ là đúng. http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ae322891-fd55-4027-ae4f-53100ae32852 – RCIX

2

Tôi không thấy bất kỳ sự hỗ trợ nào của hộp kiểm bởi Kiểm soát OpenFileDialog. Tuy nhiên, bạn có thể thử như sau,

Đặt thuộc tính InitialDirectory thành đường dẫn chương trình của bạn. Sau đó, nếu người dùng chọn một đường dẫn cụ thể bên ngoài đường dẫn chương trình của bạn, hãy sử dụng sự kiện FileOk để kiểm tra điều này và đưa anh ta trở lại InitialDirectory.

Nếu bạn muốn kiểm soát nhiều hơn thì bạn sẽ phải viết hộp thoại tùy chỉnh của mình.

1

Đây là cách tôi đã làm nó.

openFileDialog1.InitialDirectory = Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName"); 

     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     {    
       while(Path.GetDirectoryName(openFileDialog1.FileName) != Path.Combine(Path.GetDirectoryName(Application.StartupPath), "FolderName")){ 

        MessageBox.Show("Please select .EXE which is in the default folder", "Wrong folder", MessageBoxButtons.OK, MessageBoxIcon.Information); 
       openFileDialog1.ShowDialog(); 

      }      
     } 
Các vấn đề liên quan