相关疑难解决方法(0)

创建DPI感知应用程序

我在C#中有一个表单应用程序.当我更改显示器的DPI时,所有控件都会移动.我使用了代码this.AutoScaleMode = AutoScaleMode.Dpi,但它没有避免这个问题.

有没有人有想法?

c# dpi dpi-aware

67
推荐指数
4
解决办法
8万
查看次数

带有WebBrowser控件的Excel CustomTaskPane - 键盘/焦点问题

我有这个问题https://social.msdn.microsoft.com/Forums/vstudio/en-US/e417e686-032c-4324-b778-fef66c7687cd/excel-customtaskpane-with-webbrowser-control-keyboardfocus-issues?论坛= VSTO

这里也提到https://connect.microsoft.com/VisualStudio/feedback/details/521465/the-focus-issue-between-excel-cells-and-excel-customtaskpane-with-webbrowser-control

我正在使用Visual Studio Professional 2013编写Excel 2010插件.我创建了一个简单的CustomTaskPane,其中包含一个System.Windows.Forms.WebBrowser子文件.该插件工作正常,我可以通过单击并更改复选框的状态在Web浏览器内导航.

在此输入图像描述

当我点击输入文本框时,我得到焦点,我看到光标闪烁,但是当我开始输入时,文本被发送到Excel并写入单元格而不是浏览器中的文本框.

我在功能区加载时添加自定义任务窗格.

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;
}
Run Code Online (Sandbox Code Playgroud)

当我点击文本框然后点击F6它正常工作.customtaskpane标题稍微变暗,文本框中会捕获文本.

我如何解决这个问题,以便当我点击输入文本框时,文本进入框而不是Excel?

编辑:好的,我做了一些测试. 如果我在TaskPaneView上添加事件以跟踪鼠标输入并单击它们可以正常工作,但前提是我删除了Web浏览器子项.这意味着Web浏览器以某种方式阻止这些事件并阻止TaskPaneView理解它具有焦点.如果我还在浏览器旁边的TaskPaneView中添加了一个文本框表单控件,文本框工作正常,TaskPaneView理解它有焦点,然后浏览器中的输入文本字段开始工作.如果我直接在Web浏览器上调用焦点方法,则TaskPaneView会理解它具有焦点并且一切正常.很明显,问题不在于键盘问题,而是在点击浏览器时没有告诉它有问题的TaskPaneView问题,因此击键会转到错误的区域.如果我能找到一种方法让TaskPaneView理解它有焦点,那么每个标志都应该有效.

c# excel vsto winforms excel-2010

13
推荐指数
1
解决办法
1137
查看次数

BUG:无法在DatePicker上选择不在浮动VSTO加载项之外的日期

在这里记录了微软的问题 - 可以下载Repro:https://connect.microsoft.com/VisualStudio/feedback/details/741454/value-change-event-doesnt-fire-for-datetimepicker-controls-used-在-VSTO-插件

如果将DateTimePicker放在Excel VSTO浮动加载项中并在日历下拉时将其定位,则它位于加载项的边缘之外,请参见此处:

在此输入图像描述

选择绿色中圈出的任何日期按预期工作,但点击任何以红色圈出的日期时,它只会关闭日历下拉菜单并且不会设置日期!

有谁知道我怎么解决这个问题?

编辑

这个SO用户使用WPF遇到了这个问题: VSTO WPF ContextMenu.MenuItem在没有引发的TaskPane外部单击

在此输入图像描述

该问题的答案显示该问题已被报道连接一段时间但仍然没有VSTO 4.0 SP1的解决方案:https://connect.microsoft.com/VisualStudio/feedback/details/432998/excel-2007-vsto-custom-任务窗格与- WPF的上下文菜单具有焦点,问题

其中一个解决方法是使用DispatcherFrame来为消息添加消息并为菜单订阅GotFocusEvent和LostFocusEvent.http://blogs.msdn.com/b/vsod/archive/2009/12/16/excel-2007-wpf-events-are-not-fired-for-items-that-overlap-excel-ui-for- wpf-context-menus.aspx但这是菜单的所有WPF代码,而不是Winform DateTimePicker的解决方案.

Repro for Microsoft Connect:

使用TaskPane的新项目> Excel 2010加载项; 使用Microsoft.Office.Core;

namespace ExcelAddIn2 {public partial class ThisAddIn {TaskPaneView MyTaskView = null; Microsoft.Office.Tools.CustomTaskPane MyTaskPane = null;

using TaskPane;
using Microsoft.Office.Core;

namespace ExcelAddIn2
{
public partial class ThisAddIn
{
    TaskPaneView MyTaskView = null;
    Microsoft.Office.Tools.CustomTaskPane MyTaskPane = null;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    //setup custom taskpane …
Run Code Online (Sandbox Code Playgroud)

.net c# excel vsto datetimepicker

10
推荐指数
1
解决办法
1820
查看次数

标签 统计

c# ×3

excel ×2

vsto ×2

.net ×1

datetimepicker ×1

dpi ×1

dpi-aware ×1

excel-2010 ×1

winforms ×1