[Windows ストア アプリ] メッセージダイアログを表示する(3)

これまで

とMessageDialogに関する使用方法を紹介していきました。

今回は、MessageDialogの既定のボタンを設定する方法について紹介します。

ソースコードは前回紹介したものを使用します。


MessageDialogに追加したボタンは、既定のボタンを設定することができます。

「既定のボタン」とは、表示されたときに強調表示されるボタンで、[Enter]キーが押されると既定でイベントが発生するボタンになります。

既定のボタンはMessageDialogクラスDefaultCommandIndexプロパティで設定することができます。

1番最初に追加したボタンはインデックスが0となり、2番目に追加したボタンのインデックスは1となります。

下記は、DefaultCommandIndexプロパティに1を設定して、2番目に追加した[Cancel]ボタンを既定のボタンとする例です。

VBの例

Private Async Sub btnMessage_Click(sender As Object, e As RoutedEventArgs) Handles btnMessage.Click
    Dim md As New MessageDialog("Hello, Windows Store Application!!", "First MessageDialog App")

    Dim uicOK As New UICommand("OK", New UICommandInvokedHandler(AddressOf CommandInvokedHandler))
    Dim uicCancel As New UICommand("Cancel", New UICommandInvokedHandler(AddressOf CommandInvokedHandler))

    md.Commands.Add(uicOK)
    md.Commands.Add(uicCancel)

    '既定のボタンを[Cancel]ボタンに設定する
    md.DefaultCommandIndex = 1

    Await md.ShowAsync()
End Sub

C#の例

private async void btnMessage_Click(object sender, RoutedEventArgs e)
{
    MessageDialog md = new MessageDialog("Hello, Windows Store Application!!","First MessageDialog App");

    UICommand uicOK = new UICommand("OK", new UICommandInvokedHandler(this.CommandInvokedHandler));
    UICommand uicCancel = new UICommand("Cancel", new UICommandInvokedHandler(this.CommandInvokedHandler));

    md.Commands.Add(uicOK);
    md.Commands.Add(uicCancel);

    // 既定のボタンを[Cancel]ボタンに設定する
    md.DefaultCommandIndex = 1;

    var x = await md.ShowAsync();
}

上記を入力後、[F5]キーを押して実行し[Button]をクリックすると、下図のように[Cancel]ボタンが強調表示されます。

[Enter]キーを押すと、[Cancel]がクリックされたものとみなされます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です