您好,登錄后才能下訂單哦!
在C#中,如果你想要廣播復選框的選中狀態變化,你可以使用事件和委托來實現。這里有一個簡單的示例,展示了如何使用C#中的事件和委托來廣播復選框的選中狀態變化。
首先,創建一個自定義復選框類,繼承自System.Windows.Forms.CheckBox
,并添加一個事件和一個委托:
using System;
using System.Drawing;
using System.Windows.Forms;
public class CustomCheckBox : CheckBox
{
// 委托
public delegate void CheckChangedEventHandler(object sender, CheckChangedEventArgs e);
// 事件
public event CheckChangedEventHandler CheckChanged;
public CustomCheckBox()
{
this.CheckedChanged += new EventHandler(CustomCheckBox_CheckedChanged);
}
private void CustomCheckBox_CheckedChanged(object sender, EventArgs e)
{
CheckChanged?.Invoke(this, new CheckChangedEventArgs(this.Checked));
}
}
接下來,創建一個事件參數類CheckChangedEventArgs
,用于傳遞復選框的選中狀態:
public class CheckChangedEventArgs : EventArgs
{
public bool IsChecked { get; private set; }
public CheckChangedEventArgs(bool isChecked)
{
IsChecked = isChecked;
}
}
現在,你可以在你的窗體中使用這個自定義復選框類,并為它添加事件處理程序來廣播復選框的選中狀態變化:
using System;
using System.Windows.Forms;
public class MainForm : Form
{
private CustomCheckBox checkBox1;
private CustomCheckBox checkBox2;
public MainForm()
{
checkBox1 = new CustomCheckBox();
checkBox2 = new CustomCheckBox();
checkBox1.Location = new Point(10, 10);
checkBox2.Location = new Point(10, 40);
checkBox1.CheckChanged += CheckBox1_CheckChanged;
checkBox2.CheckChanged += CheckBox2_CheckChanged;
this.Controls.Add(checkBox1);
this.Controls.Add(checkBox2);
}
private void CheckBox1_CheckChanged(object sender, CheckChangedEventArgs e)
{
Console.WriteLine($"CheckBox1 is now: {e.IsChecked}");
}
private void CheckBox2_CheckChanged(object sender, CheckChangedEventArgs e)
{
Console.WriteLine($"CheckBox2 is now: {e.IsChecked}");
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
在這個示例中,當復選框的選中狀態發生變化時,CustomCheckBox_CheckedChanged
方法會被調用,并通過CheckChanged
事件廣播給所有訂閱了該事件的監聽器。在這個例子中,我們只有兩個監聽器:CheckBox1_CheckChanged
和CheckBox2_CheckChanged
,它們分別輸出復選框的選中狀態。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。