Tag: 框架

Mousedown事件的框架控制并不总是会触发

希望有人可以帮助这个 – 我正在尝试开发一个使用事件的用户窗体文本框validation的类。 我想阻止用户退出文本框,如果文本框文本是无效的(如空白或非数字值等),无论出于何种原因。 这通常会在文本框退出事件(使用Cancel参数)中完成,但缺less包含定义的WithEvents的文本框的类的退出事件是有据可查的,所以我试图采取不同的方法。 而不是防止焦点离开有问题的文本框,我试图检测焦点移动到一个新的控制,然后将焦点回到文本框。 我正在取得进展,但遇到了一个框架控件内的控件的问题。 如果用户直接点击框架内的控件,控件的鼠标事件表明焦点已移至新控件。 但是,如果用户在框架内单击(而不是直接在框架中的控件上),则焦点将移动到框架中的第一个控件,但不会有任何事件指示这一点。 所以我尝试使用框架的mousedown事件,以便焦点可以被设置回有问题的文本框。 这个效果很好,如果我点击一个明显的框架控制区域。 但是,如果我只是在框架边框内或框架标题区域中单击,MouseDown事件不会发生。 我发现MouseUp和Click事件有同样的问题。 结果是焦点已经转移到框架内的新的控制,但是这没有被检测到。 但后来我发现使用框架的Enter事件产生了所需的结果 – 无论我在框架控件上单击哪个位置,如果焦点移动,都会发生Enter事件。 这很好,除了框架的Enter事件代码必须在devise时完成,因为enter事件对于在类中声明了WithEvents的框架也是不可用的。 这是烦人的,我希望能够使用MouseDown,而不能解决这个问题。 我在Excel 2003,2010和2013中得到了相同的结果。有谁知道为什么MouseDown和MouseUp事件有时会丢失,正如我所描述的那样?

有没有一个包装(框架)vsto word和excel

我正在与VSTO和Interop命名空间合作一段时间。 对于其大部分的部分是好的(足够)。 但有时它接缝真是荒谬。 有一些方法可以返回一个必须被转换的对象。 像这个例子一样,添加一个新的工作表: sheet = (Excel.Worksheet)application.ActiveWorkbook.Worksheets.Add(missing, application.ActiveWorkbook.ActiveSheet, 1, missing); 其他时候,您需要使用缺less的types进行方法调用,因为没有方法覆盖它。 ( 我知道这只是C#中的一个问题,而不是VB ) 就像在这个例子中保护excel表格一样: sheet.Protect(missing, true, true, true, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); 我现在的问题是:是否有任何包装,框架,API,以避免所有这些小麻烦? ( 或者提供一些更方便的方法的任何一种框架 )