TextBox のイベント


Windows 8.1 x64 update 3 RC, Windows Store Apps (C++/CX) で TextBox を複数追加して KeyDown イベントを追加します。

Xaml に KeyDown 属性を使用して KeyDown イベントを追加します。
private TextBox TextBox1;
private TextBox TextBox2;

MainPage::MainPage()
{
InitializeComponent();
}

void MainPage::KeyDown_1(Platform::Object^ sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs^ e)
{
if (e->Key == Windows::System::VirtualKey::Enter)
{
// …
TextBox2->Focus(Windows::UI::Xaml::FocusState::Programmatic);
TextBox2->SelectAll();
}
}
void MainPage::KeyDown_2(Platform::Object^ sender, Windows::UI::Xaml::Input::KeyRoutedEventArgs^ e)
{
if (e->Key == Windows::System::VirtualKey::Enter)
{
// …
}
}

このコードを実行して TextBox1 で Enter キーを押すと、KeyDown_1 イベントに続いて KeyDown_2 イベントも発生します。TextBox.SelectAll() メソッドを実行するとこの現象が発生します。

TextBox1->KeyDown += ref new Windows::UI::Xaml::Input::KeyEventHandler(this, &MainPage::TextBox1_KeyDown); のようにプログラムの中で KeyDown イベントを追加した場合はこの問題は発生しません。

投稿日: 2014年8月2日 カテゴリー: Computer, Windows settings タグ: , , , , , , , , , | パーマリンク コメントする.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。