We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

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

Platform: WinForms |
Control: SfCalendar

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

2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile