Tôi gặp vấn đề này chính xác https://social.msdn.microsoft.com/Forums/vstudio/en-US/e417e686-032c-4324-b778-fef66c7687cd/excel-customtaskpane-with-webbrowser-control-keyboardfocus-issues?forum=vstoExcel CustomTaskPane với điều khiển WebBrowser - bàn phím/tập trung phát
Cũng đề cập ở đây https://connect.microsoft.com/VisualStudio/feedback/details/521465/the-focus-issue-between-excel-cells-and-excel-customtaskpane-with-webbrowser-control
Tôi viết một Excel 2010 Plugin sử dụng Visual Studio Professional 2013. Tôi đã tạo một đơn giản CustomTaskPane với một System.Windows.Forms.WebBrowser con nộp nó. Plugin hoạt động tốt và tôi có thể điều hướng bên trong trình duyệt web bằng cách nhấp và thay đổi trạng thái hộp kiểm.
Khi tôi bấm vào một hộp đầu vào tôi nhận được tập trung và tôi nhìn thấy con trỏ nhấp nháy, nhưng khi tôi bắt đầu gõ văn bản được gửi đến Excel và ghi vào một tế bào thay vì hộp văn bản bên trong trình duyệt.
Tôi thêm thanh tác vụ tùy chỉnh khi băng tải.
private void Ribbon_Load(object sender, RibbonUIEventArgs e)
{
TaskPaneView taskPaneView = new TaskPaneView();
Microsoft.Office.Tools.CustomTaskPane myTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(taskPaneView, "Title");
myTaskPane.Visible = true;
}
Khi tôi nhấp vào hộp văn bản, sau đó nhấn F6
hoạt động chính xác. Tiêu đề customtaskpane tối hơn một chút và văn bản được ghi lại trong hộp văn bản.
Làm cách nào để khắc phục sự cố này để khi tôi nhấp vào hộp văn bản đầu vào, văn bản sẽ được chuyển vào hộp thay vì Excel?
EDIT: Ok, tôi đã làm một số thử nghiệm khác. Nếu tôi thêm các sự kiện trên TaskPaneView của mình để theo dõi chuột nhập và nhấp vào chúng hoạt động, nhưng chỉ khi tôi xóa con trình duyệt web. Có nghĩa là trình duyệt web bằng cách nào đó sẽ chặn các sự kiện này và ngăn TaskPaneView hiểu được nó đã tập trung. Nếu tôi cũng thêm điều khiển biểu mẫu hộp văn bản vào TaskPaneView dọc theo bên trình duyệt, hộp văn bản hoạt động hoàn toàn tốt và TaskPaneView hiểu rằng nó có tiêu điểm và sau đó trường nhập văn bản bên trong trình duyệt sau đó bắt đầu hoạt động. Nếu tôi gọi phương thức lấy nét trực tiếp trên trình duyệt web, TaskPaneView hiểu rằng nó có tiêu điểm và mọi thứ hoạt động hoàn hảo. Vì vậy, rõ ràng vấn đề không thực sự với bàn phím, nhưng thay vào đó một vấn đề của TaskPaneView không được cho biết nó đã tập trung khi trình duyệt được nhấp vào để các tổ hợp phím đi đến vùng sai. Nếu tôi có thể tìm ra cách để làm cho TaskPaneView hiểu nó có trọng tâm thì mọi thứ sẽ hoạt động.
Thực hiện rất nhiều điều khiển VSTO Excel ... Và sự nghi ngờ của tôi là liên quan đến Message Pumps misbehaving: [BUG: Cant chọn ngày trên DatePicker nằm ngoài một VSTO Add-In nổi] (http: // stackoverflow. com/questions/10526118/bug-cant-chọn-ngày-on-a-datepicker-đó-mùa thu-bên ngoài-một-nổi-vsto-add-in) - ** bằng cách nào đó hộp văn bản của bạn là bơm tin nhắn vào tế bào! * * –