gpt4 book ai didi

c# - 我在更新我的 ComboBox 时遇到问题,一旦我想起填充 ComboBox,我就会得到所有重复项

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

我试图在创建一个包含数据的新捕获文件后立即更新我的 ComboBox。如果我关闭表单并重新打开它,它显然已更新,但这似乎是一种廉价的编程方式。 (快速关闭表格并打开一个新表格)到目前为止,当我想起重新填充 ComboBox 的方法时,它似乎包括现有数据并硬拷贝所有内容。

我现在的代码:

表单加载后立即执行:

    private void FormCapSave_Load(object sender, EventArgs e)
{
DirectoryInfo(@"C:\Users\pc\Documents\textfolder");
FileInfo[] Files = d.GetFiles("*.cap");
foreach (FileInfo file in Files)
{
if (!comboBoxSaveCap.Items.Contains(file))
{
comboBoxSaveCap.Items.Add(file.ToString());
}
}

后面是添加新 Cap 文件的按钮:

    private void buttonFormSaveAdd_Click(object sender, EventArgs e)
{
Form1.AfterNamingCapFile();
if (Program.MainForm.boolSave == false)
{
labelFormSaveException.ForeColor = Color.Tomato;
labelFormSaveException.Text = "Cap exists";
}
else
{
labelFormSaveException.ForeColor = Color.Green;
labelFormSaveException.Text = "Cap file added";
ResetForm();
}
}

我的重置表单();基本上是第一个加载方法的副本:

    private void ResetForm()
{
DirectoryInfo(@"C:\Users\pc\Documents\textfolder");
FileInfo[] Files = d.GetFiles("*.cap");
foreach (FileInfo file in Files)
{
if (!comboBoxSaveCap.Items.Contains(file))
{
comboBoxSaveCap.Items.Add(file.ToString());
}
}
}

最佳答案

在重新填充之前,您需要清除组合框的内容。

    private void ResetForm()
{
DirectoryInfo d = new
DirectoryInfo(@"C:\Users\pc\Documents\textfolder");
FileInfo[] Files = d.GetFiles("*.cap");
comboBoxSaveCap.Items.Clear(); // Missing this bit
foreach (FileInfo file in Files)
{
if (!comboBoxSaveCap.Items.Contains(file))
{
comboBoxSaveCap.Items.Add(file.ToString());
}
}
}

关于c# - 我在更新我的 ComboBox 时遇到问题,一旦我想起填充 ComboBox,我就会得到所有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56358340/

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