入力フィールドとして10個のテキストボックスを使用するC#Windowsフォームアプリケーションがあり、これをプログラムできるようにしたいので、フォーカスがあるテキストボックスに上向き矢印Keys.Up
)または下向き矢印(Keys.Down
)を押すと、フォーカスが次または前のテキストボックスにジャンプします。C# - 矢印キーを使用して入力フィールドを切り替えることを許可する
if (e.KeyChar == Convert.ToChar(Keys.Up))
{
GetNextControl((TextBox)sender, false);
}
else if (e.KeyChar == Convert.ToChar(Keys.Down))
{
GetNextControl((TextBox)sender, true);
}
私の唯一の懸念は、これが実際のテキストの入力を妨害するかどうかではありません。
これまでのところ、私はこのようなものを使用する予定。上のコードを以下のコードのように変更する必要がありますか?
if (e.KeyChar == Convert.ToChar(Keys.Up))
{
GetNextControl((TextBox)sender, false);
}
else if (e.KeyChar == Convert.ToChar(Keys.Down))
{
GetNextControl((TextBox)sender, true);
}
//any other key pressed
else
{
TextBox input = (TextBox)sender;
//add char relating to pressed key to text in TextBox
input.AppendText(e.KeyChar.ToString());
}
このelse
句は必要ですかTextBox
のデフォルトの操作は、この条件を処理しますか?
おかげで、 マーク
疑問がある場合は、小さなテストプロジェクトを作成してください。 – BugFinder
私はこれについて考えていましたが、私がここに投稿してほしいと思っていたのは、私がこれに最善のアプローチを取っていたのか、既存の機能@BugFinderについて知らなかった – marcuthh
コントロール間のフォーカスのデフォルト処理がうまくいかないユーザーの習慣から始めてやめるのはお勧めできません – Steve