libro
www.tuyano.com
C#ではじめるWindows 8アプリ開発入門

メッセージダイアログとポップアップメニュー (4/5)

作成:2014-02-01 11:50
更新:2014-02-01 11:50

■デフォルトとキャンセルの設定

メッセージダイアログに表示したボタンには、デフォルトとキャンセルがあります。デフォルトボタンは、Enterキーを押すと自動的に選択されるボタンです。そしてキャンセルボタンは、Escキーを押すと選択されます。

これらは、MessageDialogインスタンスにあるプロパティを使って設定することができます。以下に整理しましょう。

●デフォルトボタンのプロパティ
《MessageDialog》.DefaultCommandIndex = 
    インデックス番号;

●キャンセルボタンのプロパティ
《MessageDialog》.CancelCommandIndex = インデックス番号;

これらは、MessageDialogCommandsに代入されているコレクションのインデックス番号で指定されます。DefaultCommandIndex = 0とすれば、インデックス番号ゼロ(つまり、最初にAddされたもの)がデフォルトボタンに設定される、というわけです。

下にその利用例を挙げておきます。ここでは3つのボタンを作成し、最初のボタンをキャンセルボタンに、最後のボタンをデフォルトボタンに設定しています。ダイアログを呼び出し,EnterやEscで操作してみましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

namespace MyWin8App
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private async void button1_click(object sender, RoutedEventArgs e)
        {
            string msg = "Hello, " + textbox1.Text + "!";
            MessageDialog dlog = new MessageDialog(msg,"Hello");
            for(int i = 1;i <= 3;i++)
            {
                dlog.Commands.Add(new UICommand("No," + i));
            }
            dlog.DefaultCommandIndex = (uint)dlog.Commands.Count - 1;
            dlog.CancelCommandIndex = 0;
            IUICommand cmd = await dlog.ShowAsync();
            textblock1.Text = cmd.Label + "を選んだね。";
         }
        
    }
}

※関連コンテンツ

「C#ではじめるWindows 8アプリ開発入門」に戻る