我有一个VSTOExcel工作簿。在操作Pane中有一个TreeView,我希望能够将其中的项目拖放到Excel单元格中。TreeView中的数据存储为内存中的XML。将此XML转换为单元格值的方式取决于它在工作簿中的放置位置,因此我希望能够将XML放到工作簿上,然后在事件处理程序中对其进行解释,而不是在调用之前进行转换DoDragDrop().我发现可以将由制表符和回车符分隔的文本拖放到任务Pane中的单元格上,Excel会将其转换为单元格表格布局。如上所述,这不是我想要的。我还可以将XML片段转换为文本并将其拖放到工作簿中。然后在SheetChange处理程序中,我可以检查内容是否
因此,我一直在开发一个类来处理VSTO加载项中的Kwyboard输入,到目前为止,我一直在使用WindowsHook来完成此操作并取得了相对成功。有这段代码://.....privateconstintWH_KEYBOARD=2;privateconstintWH_MOUSE=7;privateenumWM:uint{KEYDOWN=0x0100,KEYFIRST=0x0100,KEYLAST=0x0108,KEYUP=0x0101,MOUSELEFTDBLCLICK=0x0203,MOUSELEFTBTNDOWN=0x0201,MOUSELEFTBTNUP=0x0202,MOUSEM
我在这里记录了Microsoft的问题-Repro可供下载:https://connect.microsoft.com/VisualStudio/feedback/details/741454/value-change-event-doesnt-fire-for-datetimepicker-controls-used-in-vsto-add-ins如果您将DateTimePicker放在ExcelVSTOfloat加载项中并将其放置在日历下拉时,它位于加载项的边缘之外,请参见此处:选择绿色圆圈中的任何日期都按预期工作,但是当单击红色圆圈中的任何日期时,它只会关闭日历下拉菜单并且不会设
是否可以更改VSTO项目的默认命名空间?...我尝试在记事本中打开项目文件并将rootnamespacexml参数更改为我想要的新名称,但是它Word启动时无法加载加载项。它抛出一个一般的运行时错误。我怀疑list仍然指向以前的命名空间。有什么想法吗? 最佳答案 “正式”,youcannotchangethedefaultnamespaceofaVSTOproject.但是有一种方法,通过编辑项目文件并进行一些查找和替换。Thisblogpost解释如何去做。 关于c#-更改VSTO项目
我目前正在开发Excel2010加载项,该加载项以前是Excel2007加载项。在切换计算机的过程中,我认为加载项已被转换。我的一些客户表示该加载项不再适用于Excel2007,因此我尝试在安装了Excel2007和VisualStudio2010的VirtualBox中对其进行调试。现在我收到错误消息:Youcannotdebugorrunthisproject,becausetherequiredversionoftheMicrosftOfficeapplicationisnotinstalled.我开始了一个新的Excel2007加载项项目,并试图找出差异是什么,并提出它与dll
我有一个VSTOOutlook2007加载项。当新电子邮件到达收件箱时,我正在尝试获取发件人电子邮件地址。为此,我使用以下代码:voidinboxItems_ItemAdd(objectItem){Outlook.MailItemmailItem=ItemasOutlook.MailItem;if(mailItem!=null)stringemailAdress=mailItem.SenderEmailAddress;}问题是当电子邮件来自同一域时,emailAdress包含LDAP地址,如/O=FIRSTORGANIZATION/OU=FIRSTADMINISTRATIVEGROUP
我正在开发一个实时语言分析工具,它需要在Word2016中使用VSTO加载项突出显示单词以引起作者的注意,该加载项使用C#以.NET4.6.1编写。想想语法/拼写检查,它会在单词下方添加一条波浪线,告诉您该单词有语法或拼写错误。我正在为我自己定义的一些规则添加类似的功能。我四处搜索添加波浪线,偶然发现了Font.Underline和Font.UnderlineColor。我将其设置在一个词的范围内,它似乎提供了我想要引起注意的视觉刺激。但是有一个问题。我添加的每个下划线或更改的下划线颜色都会向撤消堆栈添加一个撤消操作。我不希望这种情况发生,或者我想要一种方法来从堆栈中弹出我刚刚在代码中
我正在使用VSTO创建Excel加载项。这个附加组件从sql-server检索和显示大量数据。这很好用,但后来我打算访问excel中的一些数据并以某些方式修改它。我的问题是我需要一种对要修改的单元格进行分类的方法。有什么方法可以将元数据添加到单元格以了解它是否是应该修改的单元格?例如。向单元格添加属性,例如“editable_cell”,并执行类似Excel.FindCellsWithAttribute("editable_cell")的操作来查找所需的单元格?谢谢! 最佳答案 有几种方法可以做到这一点。我不知道你的具体要求,所以我
我认为我今天的搜索技巧很糟糕,但我想找出我运行的加载项中的OfficeOutlook版本?即,我需要知道我的加载项是使用Outlook2007还是2010运行有没有我可以利用的API来找出当前的Outlook版本?谢谢,戒日 最佳答案 Globals.ThisAddIn.Application.Version 关于c#-如何从VSTO插件中找出当前版本的Outlook?,我们在StackOverflow上找到一个类似的问题: https://stackover
我认为我遇到了“最简单的答案是最难找到的答案”的情况,而且我还没有遇到任何以直接方式为我提供此答案的搜索。这适用于现有VSTO(C#)项目中的Excel2010和VS2010。我有一个包含4列数据的Excel工作表,我想将其用作DataGridView的源。有人可以提供用于(1)从特定工作表获取数据并用它填充自定义对象的C#代码片段吗?(2)将对象(如IEnumerable列表)绑定(bind)到Datagridview和(3)更新和删除功能的一些片段,这些片段将是网格固有的并反馈给源工作表。我知道我在这里要求很多,但是VSTO的很多信息似乎都是杂乱无章的,而且并不总是很容易找到。谢谢