2012-11-26 39 views
6

Tôi muốn tắt nút chuyển đổi "in đậm" trong trang tính Excel.Tắt nút in đậm

Tôi có thể làm như thế nào?

Tôi có đoạn code sau nhưng nó không làm việc:

CommandBarControl test = excel1.Application.CommandBars["Formatting"].FindControl(Id:113,Recursive:true); 
if (test.Enabled) 
{ 
MessageBox.Show(test.Caption + " enabled"); 
test.Visible = false; 
test.Enabled = false; 
} 

Tôi nghĩ rằng nó không làm việc vì từ Office 2007 họ đang sử dụng Ribbon Controls.

Có ai có thể giúp cách kiểm soát nút cụ thể không? Để tôi có thể thay đổi thuộc tính của nó, hãy bật/tắt tính năng này theo mặc định, v.v.

+1

Mặc dù tôi không có câu trả lời cho câu hỏi của bạn, tôi nghĩ khi bạn tắt nút, người dùng vẫn có thể CTRL + B thành văn bản in đậm. Thư viện VBA không có sự kiện nhưng VSTO có thể (tôi chưa bao giờ sử dụng nó) Một cái gì đó như formatComplete hoặc cellFormat, thậm chí cellLeave để kiểm tra định dạng và sau đó thay đổi nó từ đậm. Bất cứ điều gì để cô lập sự kiện bolding. Thậm chí có thể tạo sự kiện tùy chỉnh bằng cách mở rộng trình truy cập định dạng văn bản của lớp ô để tăng sự kiện bolding để bạn sử dụng. (nếu có thể) trong C# – Bmo

Trả lời

0

Không phải câu trả lời bạn muốn, tôi chắc chắn, nhưng tôi e rằng điều này không thể thực hiện được.

1

Tôi sợ câu trả lời thực sự là không thể.

Tôi đã xem xét các khả năng với các mô-đun lớp học, bởi vì tôi nghĩ rằng khi sử dụng một lớp, bạn có thể chặn sự kiện thay đổi văn bản thành chữ đậm và sau đó hủy sự kiện đó. Tuy nhiên, tất cả mọi thứ tôi có thể tìm thấy có liên quan đến các sự kiện khác (thay đổi giá trị, tính toán, thay đổi cấu trúc bảng tính, vv).

Thậm chí nếu nó hoạt động, nó sẽ liên quan đến một số mã hóa nghiêm trọng và dễ bị lỗi.

Có thể bạn đang sử dụng sai cách - lý do bạn xóa nút này là gì? Có lẽ có một giải pháp khác cho vấn đề của bạn. Và như đã đề cập ở trên, việc xóa nút không chặn khả năng sử dụng ctrl + B hoặc để dán văn bản in đậm - bạn chỉ đơn giản là không thể ngăn điều này.

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