我正在编写一个充当PowerPoint 2007插件的C#程序.在某些机器上,对PowerPoint对象模型的一些调用会抛出一条COMException消息RPC_E_SYS_CALL_FAILED.关于如何处理此错误或如何避免错误,我找不到任何具体建议.从谷歌搜索它看起来与消息队列或单线程公寓有关.还是我离开了?
错误消息的示例是:
系统调用失败.(来自HRESULT的异常:0x80010100(RPC_E_SYS_CALL_FAILED))
在Microsoft.Office.Interop.PowerPoint._Presentation.get_FullName()
不幸的是,问题出现在客户端的机器上,所以我没有简单的方法来调试它!我是否应该在收到此错误时重试呼叫?
任何建议,以帮助我解决这个问题将不胜感激!
我有一个ComboBox有两个只读值:白色融合和银色融合.
如何基于在ComboBox中选择每个方法来获得正确的运行方法?这些方法只是从SQL表中提取Integer并将其放入TextBox中.
private void cboOilVehicle_SelectedIndexChanged(object sender, EventArgs e)
{
if (cboVehicle.SelectedIndexChanged == "White Fusion")
{
whiteFusionOil();
}
else
{
silverFusionOil();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个可以放邮件项目的控件,工作正常,但无法清除选择/项目。
例如:我将邮件1拖放->邮件1在我的列表中从列表中删除邮件1返回Outlook并拖放邮件2
邮件2出现在我的列表中,但邮件1也已恢复!我发现了很多相关的帖子,Marshal.ReleaseComObject但我想我做得不好?
规格:VS2010、4.0框架。Windows 7操作系统,Outlook 2010
这是我的代码的一部分:
调用我的Save方法:
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
Try
Dim SafeSaveMethod As New dlgCallSaveMails(AddressOf SaveMailsFromSelection)
Me.BeginInvoke(SafeSaveMethod, Me.FileData.Pad)
Run Code Online (Sandbox Code Playgroud)
该Save方法:
Private Sub SaveMailsFromSelection(_path As String)
' File uit Outlook
Dim x As Integer
Dim xitmndx As Integer = 0
Dim DestFile As String
Dim oOutLook As New Outlook.Application
Dim oExplorer As Outlook.Explorer
Dim oSelection As Outlook.Selection
Dim strFile As String
oExplorer = oOutLook.ActiveExplorer
oSelection = oExplorer.Selection
Dim currentFolder As MAPIFolder = oExplorer.CurrentFolder
Dim …Run Code Online (Sandbox Code Playgroud) 如何检查VB.NET中是否会引发事件?我似乎能够在C#中完成它,但在VB中却没有,即使我使用相同的语法.
这是我的VB.NET语法(返回错误)
If [EVENT] IsNot Nothing Then
End If
Run Code Online (Sandbox Code Playgroud)
这是我的C#语法(完美运行)
If([EVENT] != null) //If an event is not null(nothing)
{
}
Run Code Online (Sandbox Code Playgroud)
这是VB代码返回的错误
"[EVENT]是一个事件,不能直接调用.使用'RaiseEvent'语句来引发事件."
我想得到一个Button的父母的父母.我能够让父母使用
Dim tempB As Button = CType(sender, Button)
Dim g1 As Grid = CType(tempB.Parent, Grid)
Run Code Online (Sandbox Code Playgroud)
(在我的点击处理程序中).但如果我这样做
Dim g2 As New Object
g2 = g1.Parent
tempB.Content = g2.GetType
Run Code Online (Sandbox Code Playgroud)
我得到了 NullReference Exception
我有一个Windows窗体项目TabControl.
有没有人知道如何改变SelectedTab你用指针悬停在它上面的时间?
我有一个如下文字.
ABC agrees to provide programming services for ABI ?("?CLIENT?") ?as described below under
"?Programming Services?" ?for <u>which CLIENT is to pay</u> a rate described in Attachment A.
Run Code Online (Sandbox Code Playgroud)
应该强调该文本,并且应该证明整个文本是合理的.我用TextInterpretationas 的公式字段HTMLText.文字有下划线,但没有正确理由.
我尝试使用TextObject,这是合理的,但所需的文字没有加下划线.请告诉我如何强调和证明文本.
我正在编写一个存储过程,我首先在表中插入一个新行.然后,另一个查询需要此查询生成的ID.是否可以使用OUTPUT访问prevoisly生成的ID?
这是我到目前为止所做的,而且几乎猜测它没有用
ALTER PROCEDURE [dbo].[addApp]
@Name varchar(50)
, @logoUrl varchar(150)
, @siteUrl varchar(150)
, @userId int
, @canvasWidth int
, @canvasHeight int
AS
DECLARE @tempId INT
SET @tempid = INSERT INTO AppInfo (name, logoUrl, userId)
OUTPUT inserted.id
VALUES(@Name, @logoUrl, @userId);
INSERT INTO CanvasApps (id, siteUrl, canvasWidth, canvasHeight)
OUTPUT inserted.id
VALUES(@tempid, @siteUrl, @logoUrl, @userId);
Run Code Online (Sandbox Code Playgroud) 我有一种情况,当我Form水平缩小时,水平和垂直ScrollBar都会出现.我创建了一个新的WinForms项目来复制行为,这里是我使用的设置.
TabControl到Form,设置Dock为FillTableLayoutPanel到TabPageDock为Fill,使用一行和一列,设置AutoScroll为"true"AutoSizeLabel到TableLayoutPanel,其文本设置为东西长Form水平收缩ScrollBar都会出现这不是一个主要问题,但感觉有点破碎,一段时间后看起来很烦人.我觉得有些东西没有正确调整大小.我的猜测是水平Scrollbar出现,触发了TableLayoutPanels ScrollBars而不是缩小TableLayoutPanel以适应新的垂直空间.
我已经尝试使用标签页的AutoScroll设置true,并得到了相同的结果.
任何见解将不胜感激.
编辑:
我测试了相同的设置只是一个Panel,Dock设置Fill,AutoSize并设置为GrowAndShrink,AutoScroll上.相同的步骤触发水平,但不垂直ScrollBar.
我必须动态地添加很多Control对象TableLayoutPanel,这需要花费大量时间。我还需要能够通过 的行和列索引访问控件,TableLayoutPanel反之亦然。
TableLayoutPanel.Controls有(据我所知)3 种添加Control对象的方法:
.Add(Control) - 继承,位置为 -1,-1 与 .GetCellPosition(Control) .Add(Control, column, row) - 位置和索引是正确的,但可能有点慢?.AddRange (Control[]) - 继承的,更快的,显示的位置是正确的(每个单元格都被填充,如果有必要,在之后设置列跨度),但位置是-1,-1 .GetCellPosition(Control) 有没有一种方法结合的优势.Add(Control, column, row和.AddRange(Control[]),即大量的添加Control对象快的TableLayoutPanel同时仍然能够获得的位置Control编程?
编辑以包含评论中的一些信息:
SuspendLayout()和ResumeLayout() TableLayoutPanel需要约2秒至负载。根据分析器,大约 50% 的时间花在添加控件上,20% 的时间花在添加控件上ResumeLayout()编辑:MCVE
我的原始代码更复杂,但这是TableLayoutPanel添加控件花费大部分时间(2/3)的示例。我正在寻找一种方法来加快速度。
public class FormTLPTest : Form
{
public FormTLPTest()
{
Height = 800;
Width = 800;
TableLayoutPanel tlp = …Run Code Online (Sandbox Code Playgroud) c# ×5
winforms ×4
vb.net ×3
.net ×1
binding ×1
c#-4.0 ×1
com ×1
combobox ×1
events ×1
formatting ×1
mouse ×1
ms-office ×1
outlook-2010 ×1
parent-child ×1
resize ×1
scroll ×1
sql ×1
sql-server ×1
tabcontrol ×1
text ×1
wpf-controls ×1