BUG: MonthView Control Prevents CommandButton Click Event (191859)



The information in this article applies to:

  • Microsoft Visual Basic Learning Edition for Windows 6.0
  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0

This article was previously published under Q191859

SYMPTOMS

A Visual Basic project contains a MonthView control and a CommandButton. When the date is changed on the MonthView control followed by clicking the CommandButton, the CommandButton gets the focus but the CommandButton's Click event is not executed. If you click the CommandButton a second time, the Click event executes normally.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Start a new Standard EXE project in Visual Basic. Form1 is created by default.
  2. Add a reference to the Microsoft Windows Common Controls-2 6.0 by completing the following steps:
    1. From the Project menu, select Components to display the Components dialog box.
    2. From the Controls tab, check Microsoft Common Controls-2 6.0.
    3. Click OK to close the dialog box.
  3. Add a MonthView control and a CommandButton to Form1.
  4. Copy the following to the Code window of Form1:
          Option Explicit
    
          Private Sub Command1_Click()
           MsgBox "CommandButton Clicked"
          End Sub
    
    					
  5. On the Run menu, select Start, or press the F5 key to start the program. Click the CommandButton. A message box appears. Click OK to dismiss the message box.
  6. Select a day in the MonthView control and then click the CommandButton. The CommandButton gets the focus but the Click event is not executed. When you click the CommandButton a second time, the Click event occurs and you see the message box.

WORKAROUND

Add the following code to Form1:
Private mvHasFocus As Boolean

Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If mvHasFocus Then
        mvHasFocus = False
        Call Command1_Click
    End If
End Sub

Private Sub MonthView1_GotFocus()
    mvHasFocus = True
End Sub
				

Modification Type:MinorLast Reviewed:3/3/2005
Keywords:kbBug kbCtrl KB191859