从一系列 CheckBox 控件生成数组



我对数组有一个小问题。

这是代码:

char[] select = new char[] { '+', '-', '/', '%' };
var rand = new Random();
char num = select[rand.Next(5)];

我有五个CheckBox控件。如果选中名为 checkboxadd 的控件,我希望数组的值为 { + } 。如果选中名为 checkboxaddcheckboxsubtract 的控件,我希望数组的值更改为 { +, - } 。等等。

这可能吗?

更多:我正在创建一个 Windows 窗体应用程序。该应用程序是一个算术学习系统,它提供了一组通过CheckBox控件选择的操作。我认为我的做法是错误的...谁能帮忙?

在设计器中添加复选框(因此它们是在 InitializeComponent() 调用中创建的)。之后,初始化一个帮助程序数组,该数组允许在 CheckedChanged 事件处理程序中进行优雅编码。因此,您可以对检查状态下的每个更改做出反应:

public partial class Form1 : Form {
    private CheckBox[] checkboxes;
    private char[] operators;
    public Form1() {
        InitializeComponent();
        checkboxes = new[] { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5 };
        checkBox1.Tag = '+';
        checkBox2.Tag = '-';
        checkBox3.Tag = '*';
        checkBox4.Tag = '/';
        checkBox5.Tag = '%';
        foreach (var cb in checkboxes) {
            cb.CheckedChanged += checkBox_CheckedChanged;
        }
    }
    private void checkBox_CheckedChanged(object sender, EventArgs e) {
        operators = checkboxes.Where(cb => cb.Checked)
            .Select(cb => cb.Tag)
            .Cast<char>()
            .ToArray();
    }
}

最新更新