Win Phone 7のXAML TextBoxを検討してください。
<TextBox x:Name="UserNumber" />
ここでの目標は、ユーザーがスクリーンキーボードのEnter
ボタンを押すと、ロジックを開始して画面のコンテンツを更新することです。
Enter
専用のイベントを発生させたいのですが。これは可能ですか?
Enter
のチェックが必要ですか?つまり、ASCII 13?テキストボックスでこれを行う簡単な方法は、
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
Debug.WriteLine("Enter");
}
}
そのテキストボックスに固有のKeyDownイベントを実装し、押された実際のキーについてKeyEventArgsを確認します(それがKey.Enterと一致する場合は、何かを行います)。
<TextBox Name="Box" InputScope="Text" KeyDown="Box_KeyDown"></TextBox>
private void Box_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key.Equals(Key.Enter))
{
//Do something
}
}
WP7エミュレーターのベータ版では、ソフトウェアオンスクリーンキーボードを使用するとEnterキーが正しく検出されますが、ハードウェアキーボードを使用している場合(Pause/Breakを押すとアクティブになる)、Enterキーが表示されるようです。 Key.Unknownとして-または、少なくとも、私のコンピューターで実行していた...
エミュレーターを使用している場合は、このようなことを行って、物理キーボードからEnterキーを検出することもできます。
private void textBox1_KeyUp(object sender, KeyEventArgs e) {
var isEnterKey =
e.Key == System.Windows.Input.Key.Enter ||
e.PlatformKeyCode == 10;
if (isEnterKey) {
// ...
}
}
同じ問題に直面しました。上記の例では、キーボードプレスイベント(質問に答える)をトラップする方法の詳細のみを示していますが、キーボードを無効にするには、オンクリックまたはEnterキーを押すだけで、フォーカスを別のコントロールに設定できます。
これにより、キーボードが無効になります。
private void txtCodeText_KeyDown(object sender, KeyEventArgs e)
{
if(e.Key.Equals(Key.Enter))
{
//setting the focus to different control
btnTransmit.Focus();
}
}