相关疑难解决方法(0)

带有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
查看次数

多DPI系统上的VSTO自定义任务窗口显示内容两次

我正在使用VSTO构建办公室插件.在具有不同DPI设置的多个监视器的系统上,我的自定义任务窗格的内容在具有较高DPI设置的监视器上绘制两次:

在此输入图像描述

只有较小的版本实际上响应用户输入.较大的版本似乎只是一个放大的图像.

我尝试过使用各种DPI相关设置,例如:

  • AutoScaleMode在我的用户控制上.我尝试了所有选项,没有变化.
  • 将过程设置为DPI可识别 - 或不 - 使用SetProcessDpiAwareness.我尝试了所有选项,没有变化.
  • 使用app.manifest并设置dpiAwaretruefalse.没变.

新的Web Addins没有这个问题.此外,内部任务窗格没有此问题.

这是一个已知的问题吗?我怎样才能解决这个问题?

c# powerpoint vsto ms-office office-interop

12
推荐指数
2
解决办法
878
查看次数

VSTO Word 2016:Squiggly下划线而不影响撤消

我正在开发一个实时语言分析工具,需要使用VSTO加载项(使用C#编写的.NET4.6.1编写,突出显示单词以引起Word 2016中作者的注意).想一想语法/拼写检查,它会在单词下面添加一条波浪线,以显示该单词具有语法错误或拼写错误.我为我自己定义的一些规则添加了一个类似的功能.

我搜索周围添加波浪线,并无意中发现了Font.UnderlineFont.UnderlineColor.我把它设置在一个单词的范围内,它似乎提供了我追随的视觉效果.但是有一个问题.我添加或加下划线颜色的每个下划线都会向撤消堆栈添加撤消操作.

我不希望这种情况发生,或者我想要一种方法来弹出我刚才在堆栈代码中执行的操作.目的是让用户能够使用CTRL + Z删除他更改的文本,而不会影响我的语言分析结果.

我该怎么做呢?

.net c# vsto ms-word

11
推荐指数
1
解决办法
837
查看次数

UI选项卡控件可见性在调试和部署版本之间发生

我有一个WPF Mvvm-Light应用程序,它使用选项卡控件向用户显示不同的视图.

问题:

我遇到的问题是,当程序首次加载时,选项卡控件显示为空.但在本地调试时,这个问题永远不会发生 这个应用程序已经开发了一年多没有这个问题,突然间它开始发生.见下图 在此输入图像描述

HACK FIX:

如果用户调整其窗口大小,则选项卡控件中的内容将刷新并显示,并且在打开应用程序时问题永远不会再次出现.但是这个问题在第一个程序加载和第一个标签加载(同时发生)的100%时间内发生

细节:

这是我如何定义插入到选项卡控件中的视图

 <DataTemplate DataType="{x:Type FtcViewModel:DashboardNavViewModel}">
   <FtcView:DashboardNav  />
 </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

这是我的标签控件:

<TabControl  Grid.Column="1" Grid.Row="3" 
                     SelectedItem="{Binding CurrentViewModel}" 
                     ItemsSource="{Binding OpenViewModelCollection}" 
                     Style="{StaticResource TabControlStyle}" 
                     ItemContainerStyle="{StaticResource TabItemStyle}" >
        </TabControl>
Run Code Online (Sandbox Code Playgroud)

然后在我的主窗口视图模型中,我将一个集合分配给选项卡控件,默认情况下将dashbaord设置为第一个像这样打开的选项卡(试图只包含相关代码,很明显在viewModel文件中还有更多):

Public Property OpenViewModelCollection As ObservableCollection(Of ViewModelHelper)
    Get
        Return Me._OpenViewModelCollection
    End Get
    Set(value As ObservableCollection(Of ViewModelHelper))
        If _OpenViewModelCollection Is value Then
            Return
        End If
        _OpenViewModelCollection = value
        RaisePropertyChanged(OpenViewModelCollectionPropertyName)
    End Set
End Property

Public Property CurrentViewModel As ViewModelHelper
            Get
                Return Me._CurrentViewModel
            End Get
            Set(value As ViewModelHelper)
                If _CurrentViewModel Is value Then …
Run Code Online (Sandbox Code Playgroud)

vb.net wpf clickonce mvvm mvvm-light

11
推荐指数
1
解决办法
295
查看次数

VSTO WPF ContextMenu.MenuItem在未引发的TaskPane外部单击

当光标位于任务窗格之外时,不会引发单击事件窗体上下文菜单项.我不知道它是如何工作的.90%的时间,点击是在任务窗格之外.

在此输入图像描述

打开上下文菜单时,子菜单通常显示在任务窗格之外(参见下图).在这种情况下,不会引发上下文菜单中的单击事件.

我绝对不知道如何做这项工作.

有任何想法吗?

wpf excel vsto contextmenu

5
推荐指数
1
解决办法
815
查看次数

当用户单击 DropDown 按钮时如何不在 DateTimePicker 中显示日历

DateTimePicker用户单击DropDown按钮时,会显示日历。我不想在 DropDown 事件上显示日历。

有什么方法可以覆盖此事件并在用户单击 DropDown 按钮时显示自定义表单?

c# winforms

5
推荐指数
1
解决办法
7663
查看次数