2010-04-06 3 views
8

Tôi đang cố gắng hiển thị menu ngữ cảnh/thư mục chuẩn trong ứng dụng WinForms - Tôi muốn cho phép người dùng làm việc với các tệp trong ứng dụng của tôi có thể trong Explorer.Hiển thị cửa sổ (tập tin/thư mục) menu ngữ cảnh trong ứng dụng C# winforms

Nên có hai tùy chọn

  • sổ popup menu ngữ cảnh với một số cuộc gọi hệ thống
  • đọc tất cả mọi thứ từ trình đơn ngữ cảnh hệ thống và chèn nó vào menu ngữ cảnh của tôi

Ông có thể xin vui lòng chỉ tôi đi đúng hướng? Cảm ơn

Trả lời

7

Tôi đã viết thư viện .NET để cho phép điều này. Bạn có thể tìm thấy nó ở đây:

http://gong-shell.sourceforge.net/

Lớp bạn đang muốn tìm ShellContextMenu trong thư viện đó.

+0

Thư viện mà bạn tạo ra thật tuyệt vời. Tôi không biết nhiều về hình thức giành chiến thắng vì vậy tôi đã có một thời gian khó cố gắng để xem cách bạn triển khai thực đơn ngữ cảnh. Tôi cần phải thực hiện điều đó trong wpf. Tôi chắc chắn rằng nó sẽ là bài luận để thực hiện nó trên wpf một khi tôi biết làm thế nào để làm điều đó trong các hình thức giành chiến thắng. –

+0

Ngoài ra tôi không cần nó trông giống như hộp thoại tập tin. Tôi chỉ có một container trên ứng dụng wpf của tôi hiển thị các tập tin (biểu tượng với nhãn) và tôi sẽ muốn cho phép người dùng xem menu ngữ cảnh tương tự mà họ nhìn thấy khi họ nhấp chuột phải vào tập tin đó trên windows explorer. –

+0

@TonoNam: rất tiếc là tôi không triển khai thực đơn ngữ cảnh - tôi vừa sử dụng API Windows Shell để hiển thị menu ngữ cảnh được Explorer sử dụng. Tôi không có ý tưởng làm thế nào bạn muốn thực hiện nó trong WPF, hoặc thậm chí nếu một điều như vậy sẽ là có thể, xin lỗi. – Grokys

3

Điều này có thể chứng minh là rất khó khăn, vì vậy tôi đề xuất hai giải pháp:

  1. (Easy) Sử dụng thư viện mà Groky đề nghị, làm gì được thực hiện trong FolderSizes. Trình đơn ngữ cảnh Explorer được hiển thị dưới dạng menu ngữ cảnh phụ. Bạn có thể mô phỏng điều này bằng cách hiển thị menu explorer khi mục "Explorer Operation" được di chuột.

    enter image description here

  2. (cứng) Nếu đó là không đủ, bạn có thể đi tất cả các cách và nhận được các mục trình đơn từ vỏ, và tạo trình đơn của riêng bạn. Điều này CodeProject bài viết (http://www.codeproject.com/KB/miscctrl/FileBrowser.aspx) đi qua quá trình liệt kê và gọi các lệnh shell cho một đối tượng vỏ cụ thể, và làm thế nào để liệt kê menu con.

+0

Kevin cảm ơn rất nhiều sự giúp đỡ. Tôi đã có một ngày bận rộn. Tôi sẽ xem xét nó càng sớm càng tốt. –