Câu hỏi Làm thế nào tôi có thể nhận được một OpenFileDialog trong một lưới thuộc tính của điều khiển tùy chỉnh?


Tôi đang tạo một điều khiển tùy chỉnh .net và nó sẽ có thể tải nhiều tệp văn bản. Tôi có một thuộc tính công khai có tên là ListFiles với các thuộc tính được đặt:


[Browsable(true), Category("Configuration"), Description("List of Files to Load")]
public string ListFiles
  {
     get { return m_oList; }
     set { m_oList = value; }
  }

Tùy thuộc vào loại đối tượng, (chuỗi, chuỗi [], Danh sách, ...), lưới thuộc tính sẽ cho phép người dùng nhập một số dữ liệu .. Mục tiêu của tôi là có một openfiledialog được lọc trong Grid Thuộc tính của thành phần của tôi điều đó sẽ cho phép người dùng chọn nhiều tệp và trả về nó dưới dạng mảng hoặc chuỗi (hoặc cái gì khác ...).

Sooo ... Đây là câu hỏi của tôi: Làm thế nào tôi có thể nhận được một OpenFileDialog trong một lưới thuộc tính của điều khiển tùy chỉnh?

Cảm ơn rất nhiều!


7
2017-10-04 18:16


gốc




Các câu trả lời:


Bạn có thể làm điều này bằng cách thêm UITypeEditor.

Đây là một ví dụ của một UITypeEditor cung cấp cho bạn OpenFileDialog để chọn một tên tệp.


9
2017-10-04 18:32





Bạn có thể sử dụng UITypeEditor có sẵn. Nó được gọi là FileNameEditor

[EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]

public string SomeFilePath
{
 get;
 set;
}

10
2018-03-03 17:13



Bạn sẽ cần thêm tham chiếu System.Design.dll. System.Design.dll chỉ khả dụng nếu bạn đang nhắm mục tiêu .net framework 4.0 (đầy đủ), không phải 4.0 hồ sơ khách hàng - wruckie