0

イベントでTextBoxプロパティAcceptsTabTrueこの条件に設定すると、機能しません。TextBox_KeyDown

if (e.KeyCode == Keys.Tab)
{
     if ((e.Control) && (e.Shift))
     {
         e.Handled = true;
         if (Tabs.SelectedIndex > 0)
             Tabs.SelectedIndex = Tabs.SelectedIndex - 1;
         else
             Tabs.SelectedIndex = Tabs.TabPages.Count - 1;
     }
     else if (e.Control)
     {
         e.Handled = true;
         if (chatFormTabs.SelectedIndex < chatFormTabs.TabPages.Count - 1)
             chatFormTabs.SelectedIndex = chatFormTabs.SelectedIndex + 1;
         else
             chatFormTabs.SelectedIndex = 0;
     }
}

Form KeyDown イベントでこの条件が欲しいのですが、うまくいきません。

誰かが私にそれを行う方法を教えてもらえますか:

  • TextBox はタブ キーを受け入れ、現在の位置に "\t" 文字を追加します。
  • Ctrl+Tab または Ctrl+Shift+Tab でタブを変更できます。
4

3 に答える 3

4

PreviewKeyDown イベントを試してください。私は(矢印キーを受け入れることで)同様の問題を抱えていましたが、うまくいきました。

于 2012-09-23T17:39:23.293 に答える
3

複数行モードでない限り、テキストボックスはタブを受け入れません。multiline プロパティを true に設定して、複数行モードに切り替えます。次に、テキスト ボックス コントロールの KeyPress イベントに次を追加します。

if (e.KeyChar == '\t' || e.KeyChar== (char)13)
            e.Handled = true;

上記のコードは、タブまたはエンターキーが押されたときにデフォルトで何もしないことを意味します。

その後、テキスト ボックス コントロールの KeyDown イベントに次のコードを追加します。

  if (e.KeyCode == Keys.Tab)
  {
     textBox1.AppendText(@"\t");
  }

上記のコードの中括弧内で、Tab キーが押されたときに実行したいことを処理します。

于 2012-09-23T17:14:36.183 に答える
2

TextBox.TabStop プロパティ TextBoxBase.AcceptsTab プロパティ TabStop プロパティを使用して、Tab キーを使用してフォーカスをコントロールに移動できるかどうかを指定できます。読み取り/書き込みブール値。

于 2013-12-28T07:22:04.717 に答える