Basic Library for UWP
手順3:アプリケーションへのコードの追加
Basic Library for UWP > Input for UWP > クイックスタート > NumericBox クイックスタート > 手順3:アプリケーションへのコードの追加

これまでの手順では、アプリケーションのユーザーインタフェースを設定し、C1NumericBox、TextBlockButton の各コントロールをアプリケーションに追加しました。この手順では、アプリケーションにコードを追加して完成させます。

次の手順に従います。

  1. 表示]→[コード]を選択してコードビューに切り替えます。
  2. 次の imports 文をページの先頭に追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Imports Windows.UI.Xaml.Media
    Imports Windows.UI.Xaml.Navigation
    Imports Windows.UI
    Imports C1.Xaml

    C# コードの書き方

    C#
    コードのコピー
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;
    using Windows.UI;
    using C1.Xaml;
  3. MainPage クラスのすぐ内側にある次のグローバル変数を初期化します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim nb1 As Integer = 5
    Dim nb2 As Integer = 2
    Dim nb3 As Integer = 3
    Dim nb4 As Integer = 7
    Dim nb5 As Integer = 9

    C# コードの書き方

    C#
    コードのコピー
    int nb1 = 5;
    int nb2 = 2;
    int nb3 = 3;
    int nb4 = 7;
    int nb5 = 9;
    これらの数字は、正しい「暗証番号」としてアプリケーションで使用されます。ユーザーが実行時に正しい番号の組み合わせを入力すると、ボタンが表示されます。
  4. Button1_Click イベントハンドラにコードを追加します。次のようになります。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btn1.Click
        DefaultLaunch()
    End Sub

    C# コードの書き方

    C#
    コードのコピー
    private void btn1_Click(object sender, RoutedEventArgs e)
    {
        DefaultLaunch();
    }
  5. Button1_Click イベントハンドラのすぐ下に次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    async Sub DefaultLaunch()
       ' 起動する URI
       Dim uri As New Uri("c1.grapecity.com")
       ' URI を起動します
       Dim success = await Windows.System.Launcher.LaunchUriAsync(uri)
       If success Then
          ' URI が起動されました
       Else
          ' URI の起動に失敗しました
       End If
    End Sub

    C# コードの書き方

    C#
    コードのコピー
    async void DefaultLaunch()
    {
        // 起動する URI
        string uriToLaunch = @"http://c1.grapecity.com/";
        var uri = new Uri(uriToLaunch);
        // URI を起動します
        var success = await Windows.System.Launcher.LaunchUriAsync(uri);
        if (success)
        {
            // URI が起動されました
        }
        else
        {
            // URI の起動に失敗しました
        }
    }
    実行時にボタンを押すと、ComponentOne Web サイトが開きます。
  6. 次に、以下のカスタム NBValidation イベントをコードに追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub NBValidation()
        If Me.c1nb1.Value = nb1 And Me.c1nb2.Value = nb2 And Me.c1nb3.Value = nb3 And Me.c1nb4.Value = nb4 And Me.c1nb5.Value = nb5 Then
            Me.tb2.Foreground = New SolidColorBrush(Colors.Green)
            Me.tb2.Text = "組み合わせが正しい"
            Me.c1nb1.IsReadOnly = True
            Me.c1nb2.IsReadOnly = True
            Me.c1nb3.IsReadOnly = True
            Me.c1nb4.IsReadOnly = True
            Me.c1nb5.IsReadOnly = True
            Me.btn1.Visibility = Visibility.Visible
        End If
    End Sub

    C# コードの書き方

    C#
    コードのコピー
    private void NBValidation()
    {
        if (this.c1nb1.Value == nb1 & this.c1nb2.Value == nb2 & this.c1nb3.Value == nb3 & this.c1nb4.Value == nb4 & this.c1nb5.Value == nb5)
        {
            this.tb2.Foreground = new SolidColorBrush(Colors.Green);
            this.tb2.Text = "組み合わせが正しい";
            this.c1nb1.IsReadOnly = true;
            this.c1nb2.IsReadOnly = true;
            this.c1nb3.IsReadOnly = true;
            this.c1nb4.IsReadOnly = true;
            this.c1nb5.IsReadOnly = true;
            this.btn1.Visibility = Visibility.Visible;
        }
    }
    ユーザーが(上の手順3で示した)正しい番号を入力すると、C1NumericBox コントロールは読み取り専用に設定されて編集できなくなります。コントロールの下にあるラベルのテキストは、正しいコードが入力されていることを示すように変更されます。また、ComponentOne Web サイトに移動するためのボタンが表示されます。
  7. NBValidation を初期化するための C1NumericBox_ValueChanged イベントハンドラを追加します。コードは次のようになります。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub c1nb1_ValueChanged(ByVal sender As System.Object, ByVal e As C1.Xaml.PropertyChangedEventArgs(Of System.Double)) Handles c1nb1.ValueChanged
        NBValidation()
    End Sub
    Private Sub c1nb2_ValueChanged(ByVal sender As System.Object, ByVal e As C1.Xaml.PropertyChangedEventArgs(Of System.Double)) Handles c1nb2.ValueChanged
        NBValidation()
    End Sub
    Private Sub c1nb3_ValueChanged(ByVal sender As System.Object, ByVal e As C1.Xaml.PropertyChangedEventArgs(Of System.Double)) Handles c1nb3.ValueChanged
        NBValidation()
    End Sub
    Private Sub c1nb4_ValueChanged(ByVal sender As System.Object, ByVal e As C1.Xaml.PropertyChangedEventArgs(Of System.Double)) Handles c1nb4.ValueChanged
        NBValidation()
    End Sub
    Private Sub c1nb5_ValueChanged(ByVal sender As System.Object, ByVal e As C1.Xaml.PropertyChangedEventArgs(Of System.Double)) Handles c1nb5.ValueChanged
        NBValidation()
    End Sub

    C# コードの書き方

    C#
    コードのコピー
    private void c1nb1_ValueChanged(object sender, PropertyChangedEventArgs<double> e)
    {
        NBValidation();
    }
    private void c1nb2_ValueChanged(object sender, PropertyChangedEventArgs<double> e)
    {
        NBValidation();
    }
    private void c1nb3_ValueChanged(object sender, PropertyChangedEventArgs<double> e)
    {
        NBValidation();
    }
    private void c1nb4_ValueChanged(object sender, PropertyChangedEventArgs<double> e)
    {
        NBValidation();
    }
    private void c1nb5_ValueChanged(object sender, PropertyChangedEventArgs<double> e)
    {
        NBValidation();
    }

この手順では、アプリケーションにコードを追加しました。次の手順では、アプリケーションを実行し、実行時の操作を確認します。

関連トピック