C# 如何创建Ctrl+;在多行文本框中按下Tab时,Tab的工作方式与按下Tab时的工作方式类似?

C# 如何创建Ctrl+;在多行文本框中按下Tab时,Tab的工作方式与按下Tab时的工作方式类似?,c#,vb.net,winforms,textbox,mdi,C#,Vb.net,Winforms,Textbox,Mdi,我有一个文本框,将MiltiLine属性设置为true,将AcceptsTab属性设置为false 当文本框具有焦点且我按Tab键时,它工作正常,下一个控件获得焦点,但当我按Ctrl+Tab键时,它的工作方式就好像AcceptsTab属性设置为true并在文本框中生成制表符一样 我按Ctrl+Tab键的原因。。在我的MDI应用程序中切换表单时 现在,如何使按下Ctrl+Tab键时的效果与在多行文本框中按下Tab键时的效果类似?如果要在文本框中抑制Ctrl+Tab键按下事件,可以使用如下代码禁用T

我有一个文本框,将MiltiLine属性设置为true,将AcceptsTab属性设置为false

当文本框具有焦点且我按Tab键时,它工作正常,下一个控件获得焦点,但当我按Ctrl+Tab键时,它的工作方式就好像AcceptsTab属性设置为true并在文本框中生成制表符一样

我按Ctrl+Tab键的原因。。在我的MDI应用程序中切换表单时


现在,如何使按下Ctrl+Tab键时的效果与在多行文本框中按下Tab键时的效果类似?

如果要在文本框中抑制Ctrl+Tab键按下事件,可以使用如下代码禁用TextBox.KeyDown事件:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.Tab)
    {
        e.Handled = true;
    }
}

此代码将禁止文本框中的选项卡行为。但我不知道这是否能让孩子们改变行为。可能您必须以编程方式实现它。在我的带有一个MDI容器窗体和两个子窗体的简单MDI应用程序中,默认情况下不会出现此行为。

如果要在textbox中禁用Ctrl+Tab press事件,可以使用如下代码禁用textbox.KeyDown事件:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.Tab)
    {
        e.Handled = true;
    }
}

此代码将禁止文本框中的选项卡行为。但我不知道这是否能让孩子们改变行为。可能您必须以编程方式实现它。在我的带有一个MDI容器表单和两个子表单的简单MDI应用程序中,默认情况下不会出现这种行为。

Hello。对不起,可能是我不明白这个问题。我创建了WinForms项目,将TabControl、多行文本框和按钮放在第一个选项卡上。Textbox AcceptsTab属性设置为false。在Tab上,它将焦点移动到其他控件,在Ctrl+Tab上,它切换选项卡。这是必需的行为吗?不,我没有使用TabControl,我的问题是:我在活动子窗体中使用MDI应用程序,焦点在文本框上。。当我只按(Tab)键时,它会转到活动子窗体中的下一个控件(这很好)。但当我按下Ctrl+Tab键,焦点在文本框上时,它会在文本框中输入一个制表符(我不想这样),然后移动到下一个子表单。我想要的是在按住Ctrl+Tab键时移动到下一个子窗体,而不在文本框中输入制表符。thanx提前,你好。对不起,可能是我不明白这个问题。我创建了WinForms项目,将TabControl、多行文本框和按钮放在第一个选项卡上。Textbox AcceptsTab属性设置为false。在Tab上,它将焦点移动到其他控件,在Ctrl+Tab上,它切换选项卡。这是必需的行为吗?不,我没有使用TabControl,我的问题是:我在活动子窗体中使用MDI应用程序,焦点在文本框上。。当我只按(Tab)键时,它会转到活动子窗体中的下一个控件(这很好)。但当我按下Ctrl+Tab键,焦点在文本框上时,它会在文本框中输入一个制表符(我不想这样),然后移动到下一个子表单。我想要的是在按住Ctrl+Tab键时移动到下一个子窗体,而不在文本框中输入制表符。提前准备好。