Tôi đang tạo một gói Visual Studio (đây là lần đầu tiên của tôi) và mục tiêu cuối cùng của tôi là tạo một mục menu ngữ cảnh cho trình thám hiểm giải pháp mà chỉ hoạt động trên một số loại tệp nhất định. (Tôi nghĩ rằng đây sẽ là một điều phổ biến, nhưng không tìm thấy bất kỳ hướng dẫn phong nha về nó, vì vậy nếu bạn biết bất kỳ xin vui lòng cho tôi biết)Visual Studio Package: Cài đặt chế độ hiển thị của một mục trình đơn ngữ cảnh Solution Explorer tùy chỉnh
Tôi theo một hướng dẫn MSDN đơn giản để tạo một mục trong thanh công cụ đầu tiên (Tôi quên đâu là liên kết nó) và điều này làm việc tốt.
Sau đó, tôi tìm thấy một cách để di chuyển nó vào menu ngữ cảnh của Solution Explorer. Điều này đạt được bằng cách thao tác các tập tin .vsct
và có một yếu tố như thế này:
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
Điều đó có lẽ không quan trọng, nhưng tôi đang cố gắng để thiết lập các cảnh.
Bây giờ, vì tôi chỉ muốn hiển thị mục cho một số loại tệp nhất định, tôi cần tìm cách kiểm tra tệp khi nhấn nút chuột phải. Cắt một tìm kiếm dài ngắn, tôi found this và kết thúc với đoạn mã sau:
protected override void Initialize()
{
//stuff
OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
menuItem.BeforeQueryStatus += menuItem_BeforeQueryStatus;
//more stuff
}
void menuItem_BeforeQueryStatus(object sender, EventArgs e)
{
var myCommand = sender as OleMenuCommand;
myCommand.Text = "NEW NAME";
}
Trong ví dụ trên tôi chỉ cố gắng để thiết lập các văn bản để thử và chứng minh nó hoạt động, tôi biết có một tài sản Visible
nhưng Tôi muốn bước này để làm việc đầu tiên. Sự kiện BeforeQueryStatus
được kích hoạt và gỡ lỗi cho thấy việc thực thi mã như mong đợi. Tuy nhiên, không có thay đổi trong mục trình đơn ngữ cảnh, nó vẫn giữ nguyên với văn bản gốc.
Tôi thiếu gì ở đây? Tại sao nó không cập nhật?
Tìm thấy tuyệt vời, tôi chắc chắn điều này sẽ rất hữu ích cho những người khác quá – musefan
Vì một lý do nào đó, bạn cũng có thể tìm thấy các hướng dẫn tương tự tại đây: Microsoft.VisualStudio.VSConstants.UICONTEXT. Tôi đã tìm thấy thông tin trên trang này. http://www.mztools.com/articles/2013/MZ2013027.aspx –