gpt4 book ai didi

c# - 影响多个表单对象的函数 (checkedListBox)

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:11 25 4
gpt4 key购买 nike

我在一个表单上有多个 checkedListBox。对于每个 checkedListBox 我都有一个按钮来“选择所有”项目:

private void btnSelectAll1_Click(object sender, EventArgs e)
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
checkedListBox1.SetItemCheckState(i, CheckState.Checked);
}
}

其中每个按钮都具有与 checkedListBox2、3、4 等相同的功能。

我不想在每个点击函数中复制代码,而是想简单地使用一个函数来替换与按钮对应的“checkedListBox”。例如。 “btnSelectAll1”将“checkedListBox1”发送给函数,“btnSelectAll2”发送“checkedListBox2”等等。

类似于:

private void btnSelectAll1_Click(object sender, EventArgs e)
{
SelectAll(checkedListBox1)
}

private void btnSelectAll2_Click(object sender, EventArgs e)
{
SelectAll(checkedListBox2)
}

void SelectAll(strCheckedListBox)
{
for (int i = 0; i < strCheckedListBox.Items.Count; i++)
{
strCheckedListBox.SetItemCheckState(i, CheckState.Checked);
}
}

最佳答案

您可以使用 Control.Tag 属性在每个按钮中存储正确的 checkedListBox 引用:

首先,在Form_Load中分配checkedListBox控件引用:

btnSelectAll1.Tag = checkedListBox1;
btnSelectAll2.Tag = checkedListBox2;
...
btnSelectAll10.Tag = checkedListBox10;

然后,为所有这些按钮创建一个事件处理程序(确保在 Form.Designer.cs 中指向每个按钮的 Click 事件文件到此事件处理程序):

private void SelectAll_Click(object sender, EventArgs e)
{
var clickedButton = sender as Button;
var checkedListBoxControl = clickedButton.Tag as CheckedListBox;

// Do what you need with checkedListBoxControl...
}

关于c# - 影响多个表单对象的函数 (checkedListBox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55047252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com