WPF TextBox

WPF で TextBox からデータを取得して GCM(最大公約数), LCM(最小公倍数)を計算します。
TextBox と Button のプロパティを設定します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. Windows10 & Visual Studio 2015 で、TextBox を張り付けて GCM(最大公約数), LCM(最小公倍数)を計算します。
    [ファイル][新規作成][プロジェクト]から[Visual C#][Windows][WPF アプリ(.NET Framework)]を選んで下さい。
    ツールから TextBox を貼り付けてサイズと座標を整えます。
    TextBox と TextBlock があるのですが、両者には基本的な違いは無いようです。
    使用例を見ると、データのタイプ入力や印字には TextBox が使われ、見出しなどには TextBlock が使われることが多いようです。
    プロジェクトの作成とツールの貼り付けは C# Store Application を参照して下さい。
  2. データ入力用の TextBox を2個, ボタン, 表示用の TextBox を2個を配置します。
    1. [Window] を選択してサイズを「幅=525, 高さ=500」に広げて下さい。
      規定値のままだと TextBox が「はみ出す」かも知れません。
    2. >>アセットをクリックしてツール一覧から TextBox をクリックすると、アセットの下にコピーされます。

    3. TextBox をダブルクリックして上段に二個並べて配置します。
      Button をダブルクリックして中央に配置します。
      TextBox をダブルクリックして下段に二個並べて配置します。
    4. 配置の設定は TextBox(Button) のプロパティで行うのが便利です。
      Width, Heigth が幅と高さで、Margin が座標です。

  3. ボタンのクリックで Button_Click() 関数を呼び出します。
    ボタンのプロパティから稲妻アイコンを選択して Click に「Button_Click」とタイプして下さい。
  4. Button_Click() 関数です。
    textBox と textBox1 からタイプされたデータを取得します。
    gcmlcm() Class を生成して、最大公約数, 最小公倍数を計算して表示します。
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                int d1,d2;
                d1= int.Parse(textBox.Text);
                d2= int.Parse(textBox1.Text);
                gcmlcm  glcm = new gcmlcm();
                textBox2.Text= glcm.gcm(d1,d2).ToString();
                textBox3.Text= glcm.lcm(d1,d2).ToString();
            }
    
  5. gcmlcm() Class です。
    Button_Click() 関数の直後にでも置いて下さい。
    class gcmlcm
    {   public int gcm(int d1, int d2)
        {   int n,m;
            n= d1;
            m= d2;
            while(n!=m)
            {   if (n>m)    n-= m;
                else        m-= n;
            }
            return n;
        }
        public int lcm(int d1, int d2)
        {   int     wk;
            wk= gcm(d1, d2);
            return d1*d2/wk;
        }
    }
    
  6. 右三角でコンパイル&実行して下さい。
    上段の TextBox 二個にデータをタイプしてボタンをクリックして下さい。
    最大公約数, 最小公倍数を計算して下段の TextBox に表示します。

  7. ウインドウのレイアウトは MainWindow.xaml で定義されています。
    TextBox の表示(Text=) と Button の表示(Content=) を設定します。
        <TextBox x:Name="textBox"  ・・・ Text="DATA-1"  ・・・
        <TextBox x:Name="textBox1" ・・・ Text="DATA-2"  ・・・
        <Button x:Name="button"    ・・・ Content="計算" ・・・
        <TextBox x:Name="textBox2" ・・・ Text="GCM"     ・・・
        <TextBox x:Name="textBox3" ・・・ Text="LCM"     ・・・
    
  8. Button の枠を "Blue" に設定します。
        <Button x:Name="button" Content="計算" HorizontalAlignment="Left" VerticalAlignment="Top"
          Width="80" Height="50" Margin="180,180,0,0" BorderBrush="Blue" Padding="10" Click="Button_Click"/>
    
  9. TextBox に色を設定します。
        <TextBox x:Name="textBox" HorizontalAlignment="Left" Height="48" TextWrapping="Wrap"
          Text="DATA-1" VerticalAlignment="Top" Width="100" Margin="100,100,0,0" Background="LightGreen"/>
    

  10. Button の角を丸くして "pink" 色に設定します。
        <Button Margin="180,180,0,0" VerticalAlignment="Top" Click="Button_Click"
          HorizontalAlignment="Left" Height="50" Width="100">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border Background="pink" CornerRadius="30" Padding="10">
                        <TextBlock Text="計算" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                    </Border>
                </ControlTemplate>
            </Button.Template>
        </Button>
    

  11. Button を "LightBlue" の楕円形に設定します。
    Button の文字は TextBlock で楕円形の上から書いています。
        <Button Margin="180,180,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Click="Button_Click">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Ellipse Fill="LightBlue" Width="80" Height="30"/>
                </ControlTemplate>
            </Button.Template>
        </Button>
    
        <TextBlock x:Name="textBlock" HorizontalAlignment="Left" TextWrapping="Wrap" Text="計算"
          VerticalAlignment="Top" Margin="210,187.301,0,0" Width="80.417" Height="40"/>
    

TextBox(Button) の貼り付けがうまく行かない場合があります。
下記を参考に MainWindow.xaml を調べて下さい。
    <Grid>
        <TextBox x:Name="textBox" HorizontalAlignment="Left" Height="48" TextWrapping="Wrap" Text="DATA-1"
          VerticalAlignment="Top" Width="100" Margin="100,100,0,0" Background="LightGreen"/>
        <TextBox x:Name="textBox1" HorizontalAlignment="Right" Height="48" TextWrapping="Wrap" Text="DATA-2"
          VerticalAlignment="Top" Width="100" Margin="250,100,138.45,0" Background="LightGreen"/>
        <Button x:Name="button" Content="計算" HorizontalAlignment="Left" VerticalAlignment="Top" Width="80"
          Height="50" Margin="180,180,0,0" BorderBrush="Blue" Padding="10" Click="Button_Click"/>
        <TextBox x:Name="textBox2" HorizontalAlignment="Left" Height="48" TextWrapping="Wrap" Text="GCM"
          VerticalAlignment="Top" Width="100" Margin="100,260,0,0" Background="wheat"/>
        <TextBox x:Name="textBox3" HorizontalAlignment="Left" Height="48" TextWrapping="Wrap" Text="LCM"
          VerticalAlignment="Top" Width="100" Margin="250,260,0,0" Background="wheat"/>
    </Grid>

超初心者のプログラム入門(C# Frame Work)