当鼠标仍然closures时,我想要检测窗体上任何Frame上的mouse_down。 我知道如何做一个点击,但我想赶上mouse_up之前。 谢谢
我正在尝试在Microsoft Excel中使用MouseDown事件来创build一个形状(一个简单的矩形),而我有两个主要问题。 最后的目标是在形状被移动或改变时运行一个macros。 这是我正在尝试遵循的示例: https : //msdn.microsoft.com/en-us/vba/excel-vba/articles/chart-mousedown-event-excel 问题1:如何找出我形状的“expression式”名称(对应于例子中的“图表”)? 在我的工作表中添加第一个形状时,它会自动被称为“矩形1”。 但是,这不能是我需要在代码中使用的名称,因为它有一个空格。 必须有一些其他的名称来解决它。 问题2:一切都没有发生。 我开始了一个完全空白的工作簿,添加了一个矩形,并将这些代码插入到工作表中: Option Explicit Private Sub Rectangle1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MsgBox "HELLO!" End Sub (假设我需要调用矩形“Rectangle1”),但如果我点击形状,没有任何反应。 更新我已经得出结论,Excel不是我正在尝试构build的应用程序的正确select,现在开始学习使用JavaScript进行编码。
希望有人可以帮助这个 – 我正在尝试开发一个使用事件的用户窗体文本框validation的类。 我想阻止用户退出文本框,如果文本框文本是无效的(如空白或非数字值等),无论出于何种原因。 这通常会在文本框退出事件(使用Cancel参数)中完成,但缺less包含定义的WithEvents的文本框的类的退出事件是有据可查的,所以我试图采取不同的方法。 而不是防止焦点离开有问题的文本框,我试图检测焦点移动到一个新的控制,然后将焦点回到文本框。 我正在取得进展,但遇到了一个框架控件内的控件的问题。 如果用户直接点击框架内的控件,控件的鼠标事件表明焦点已移至新控件。 但是,如果用户在框架内单击(而不是直接在框架中的控件上),则焦点将移动到框架中的第一个控件,但不会有任何事件指示这一点。 所以我尝试使用框架的mousedown事件,以便焦点可以被设置回有问题的文本框。 这个效果很好,如果我点击一个明显的框架控制区域。 但是,如果我只是在框架边框内或框架标题区域中单击,MouseDown事件不会发生。 我发现MouseUp和Click事件有同样的问题。 结果是焦点已经转移到框架内的新的控制,但是这没有被检测到。 但后来我发现使用框架的Enter事件产生了所需的结果 – 无论我在框架控件上单击哪个位置,如果焦点移动,都会发生Enter事件。 这很好,除了框架的Enter事件代码必须在devise时完成,因为enter事件对于在类中声明了WithEvents的框架也是不可用的。 这是烦人的,我希望能够使用MouseDown,而不能解决这个问题。 我在Excel 2003,2010和2013中得到了相同的结果。有谁知道为什么MouseDown和MouseUp事件有时会丢失,正如我所描述的那样?