How to provide a keyboard shortcut to programmatically open the primitive tab drop down in WinForms TabControlAdv?
Keyboard settings
In TabControlAdv, to provide a keyboard shortcut to programmatically open the primitive tab drop down, it is not possible with default drop down. As a work around, we can add ContextMenuStrip and show it when we click the drop down or when we press Ctrl+A.
C#
private void tabControlAdv1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.Control | Keys.A))
this.contextMenuStrip1.Show(this.tabControlAdv1, new Point(this.tabControlAdv1.TabPrimitivesHost.Location.X, this.tabControlAdv1.TabPrimitivesHost.Location.Y+10));
}
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
if(this.contextMenuStrip1.Items!=null)
this.contextMenuStrip1.Items.Clear();
foreach (TabPageAdv tabpageAdv in this.tabControlAdv1.TabPages)
{
this.contextMenuStrip1.Items.Add(tabpageAdv.Text);
}
}
VB
Private Sub tabControlAdv1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles tabControlAdv1.KeyDown If e.KeyData = (Keys.Control Or Keys.A) Then Me.contextMenuStrip1.Show(Me.tabControlAdv1, New Point(Me.tabControlAdv1.TabPrimitivesHost.Location.X, Me.tabControlAdv1.TabPrimitivesHost.Location.Y+10)) End If End Sub Private Sub contextMenuStrip1_Opening(ByVal sender As Object, ByVal e As CancelEventArgs) Handles contextMenuStrip1.Opening If Me.contextMenuStrip1.Items IsNot Nothing Then Me.contextMenuStrip1.Items.Clear() End If For Each tabpageAdv As TabPageAdv In Me.tabControlAdv1.TabPages Me.contextMenuStrip1.Items.Add(tabpageAdv.Text) Next tabpageAdv End Sub