Articles in this section
Category / Section

How to determine which child control in SfCalendar control has focus?

2 mins read

SfCalendar control is a combination of different controls like CalendarGrid, None and Today Button’s. End user can navigate between its sub controls using Tab key and it will be help for end user, if there is any option to know which part of SfCalendar control is focused currently. The ActiveControl option available in Form can be helpful in this case.

 

The following code demonstrates the same.

 

Code Example: [C#]

 

            /// <summary>
        /// Occurs when the Form is load
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            // To display Footer part of SfCalendar
            this.sfCalendar.ShowFooter = true;
            this.KeyPreview = true;
            this.KeyUp += Form1_KeyUp;
        }
 
        /// <summary>
        /// Invoked when Key up
        /// </summary>
        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyData == Keys.Tab)
            {
                UpdateActiveControl();
            }
        }
 
        /// <summary>
        /// To update Active / Focused control in SfCalendar
        /// </summary>
        private void UpdateActiveControl()
        {
            if (this.ActiveControl != null && this.ActiveControl.ContainsFocus)
            {
                if (this.ActiveControl.Text == "None")
                {
                    MessageBox.Show("None Button", "Focused Control");
                }
                else if (this.ActiveControl.Text == "Today")
                {
                    MessageBox.Show("Today Button", "Focused Control");
                }
                else if (this.ActiveControl is Syncfusion.WinForms.Input.SfCalendar)
                {
                    MessageBox.Show("SfCalendar", "Focused Control");
                }
            }
        }

 

 

Code Example: [VB]

 

              ''' <summary>
  ''' Occurs when the Form is load
  ''' </summary>
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
   ' To display Footer part of SfCalendar
   Me.sfCalendar.ShowFooter = True
   Me.KeyPreview = True
   AddHandler Me.KeyUp, AddressOf Form1_KeyUp
  End Sub
 
  ''' <summary>
  ''' Invoked when Key up
  ''' </summary>
  Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs)
   If e.KeyData = Keys.Tab Then
    UpdateActiveControl()
   End If
  End Sub
 
  ''' <summary>
  ''' To update Active / Focused control in SfCalendar
  ''' </summary>
  Private Sub UpdateActiveControl()
   If Me.ActiveControl IsNot Nothing AndAlso Me.ActiveControl.ContainsFocus Then
    If Me.ActiveControl.Text = "None" Then
     MessageBox.Show("None Button", "Focused Control")
    ElseIf Me.ActiveControl.Text = "Today" Then
     MessageBox.Show("Today Button", "Focused Control")
    ElseIf TypeOf Me.ActiveControl Is Syncfusion.WinForms.Input.SfCalendar Then
     MessageBox.Show("SfCalendar", "Focused Control")
    End If
   End If
  End Sub

 

Screenshot:

 

cid:image001.png@01D4308C.39A5D130

 

 

cid:image002.png@01D4308C.39A5D130

 

 

cid:image003.png@01D4308C.39A5D130

 

 

Sample

 

C#:  SfCalendar_C#

VB: SfCalendar_VB

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied