关于事件触发和代码执行(或窗体显示?)的奇怪问题,望达人解惑,谢谢!
第一个问题:昨天刚发现的,结合TextBox MSHFlexGrid 进行设计,其中分别有 TextBox 的KeyDown KeyPress 事件,MSHFlexGrid 的 LeaveCell EnterCell GotFocus 事件后来又加入 TextBox 的 LostFocus 事件,事件代码如下:
Private Sub TextBox_LostFocus()
TextBox.Visible=False
End Sub
结果加入此代码后,当我点击某单元格的时候,没有触发MSHFlexGrid的EnterCell事件,而如果我在EnterCell事件中加MsgBox “123”以后,则该事件就能正常触发了。
Why? 在下百思不得其解呀,为何加入Msgbox事件就能触发了呢?
第二个问题:同第一个差不多,无TextBox_LostFocus事件,EnterCell事件触发,用Debug.Print 检测代码似乎也执行也正常,但窗体显示不正常。代码如下:
Private Sub MSHFlexGrid_EnterCell()
With MSHFlexGrid
TextBox.Width=.CellWidth
TextBox.Height=.CellHeight
End Sub
用Debug.Print检测Width、Height赋值正常,但窗体显示的TextBox总比单元格大一些。但如果将Debug.Print换成MsgBox则显示立即恢复正常,TextBox变得和单元格一样大了。
以上两问,在下想破头也不知道问题在哪里,望高手解惑,在下感激不尽!