目次: C# - Windows Formsでよく使うコントロールたち (Visual Studioなし環境向け) - Qiita
画面キャプチャ
テンプレ
using System;
using System.Drawing;
using System.Windows.Forms;
class NumericUpDownSample : Form
{
NumericUpDown nud;
NumericUpDownSample()
{
ClientSize = new Size(300, 100);
Controls.Add(nud = new NumericUpDown(){
Location = new Point(0, 0),
Width = 80,
Maximum = 20,
Minimum = 0,
Value = 5,
});
nud.ValueChanged += Nud_ValueChanged;
}
void Nud_ValueChanged(object sender, EventArgs e)
{
int n = (int)nud.Value; // NumericUpDownのValueプロパティはdecimal型なので、整数にしたい場合は、キャストが必要
int prod = 1;
// checked {}で囲むと、オーバーフローを検出したときにエラーを発生させる。
// ※13の階乗(13!)は C#の intの最大値 (2^31)-1 を超えてオーバーフローする
checked {
for ( int k=1; k<=n; k++ ) {
prod *= k;
}
}
Text = n.ToString()+"! = " + prod.ToString();
}
[STAThread]
static void Main()
{
Application.Run(new NumericUpDownSample());
}
}
ついでにオーバーフロー仕込んでみた・・・1
参考サイト
-
decimal
型のまま計算すればもうちょい行けるけど、論点がずれすぎるのと、精度とかややこしくなりそうなのでやめておく ↩