目次: C# - Windows Formsでよく使うコントロールたち (Visual Studioなし環境向け) - Qiita
画面キャプチャ
Click
イベントとCheckedChanged
イベントの違い
-
CheckedChanged
イベントは、ユーザー操作だけでなく、プログラムからCheckBoxのChecked
プロパティを操作した場合もコールされる。 -
Click
イベントは、ユーザー操作からは呼ばれる。「クリック(Click)」という名称だが、スペースキーでChecked
状態を操作しても呼んでくれる。プログラムからCheckBoxのChecked
プロパティを操作した場合はコールされない。
確認用コード
確認用コード
using System;
using System.Drawing;
using System.Windows.Forms;
class CheckBoxSample:Form
{
CheckBox checkBox;
CheckBoxSample()
{
Text = "CheckBox sample";
Controls.Add(checkBox = new CheckBox(){
Location = new Point(10, 10),
Size = new Size(150, 25),
Text = "sample",
});
// 用途に合わせて、どちらか一方を使うとよいかと思います。
checkBox.CheckedChanged += CheckBoxCheckedChanged;
checkBox.Click += CheckBoxClick;
Button button;
Controls.Add(button = new Button(){
Location = new Point(10, 50),
Size = new Size(150, 25),
Text = "test",
});
button.Click += (s,e)=>{checkBox.Checked = !checkBox.Checked;};
}
// CheckedChangedイベントは、
// ユーザー操作だけでなく、
// プログラムからCheckBoxのCheckedプロパティを操作した場合もコールされる。
void CheckBoxCheckedChanged(object sender, EventArgs e)
{
// window title
if ( checkBox.Checked ) {
Text = "Checked";
}
else {
Text = "Not checked";
}
}
// Clickイベントは、
// ユーザー操作からは呼ばれる。
// (「クリック(Click)」という名称だが、スペースキーでCheck状態を操作しても呼んでくれる。)
// プログラムからCheckBoxのCheckedプロパティを操作した場合はコールされない。
void CheckBoxClick(object sender, EventArgs e)
{
Console.WriteLine("clicked");
}
[STAThread]
static void Main()
{
Application.Run(new CheckBoxSample());
}
}
テンプレ
テンプレ
using System;
using System.Drawing;
using System.Windows.Forms;
class CheckBoxSample:Form
{
CheckBox checkBox;
CheckBoxSample()
{
Text = "CheckBox sample";
Controls.Add(checkBox = new CheckBox(){
Location = new Point(10, 10),
Size = new Size(150, 25),
Text = "sample",
});
// 用途に合わせて、どちらか一方を使うとよいかと思います。
//checkBox.Click += CheckBoxClick;
checkBox.CheckedChanged += CheckBoxCheckedChanged;
}
//void CheckBoxClick(object sender, EventArgs e)
void CheckBoxCheckedChanged(object sender, EventArgs e)
{
// window title
if ( checkBox.Checked ) {
Text = "Checked";
}
else {
Text = "Not checked";
}
}
[STAThread]
static void Main()
{
Application.Run(new CheckBoxSample());
}
}