繁体   English   中英

C# Combobox 未从列表中正确填充

[英]C# Combobox not populating from list correctly

我有一个组合框,我试图在用户编辑数据后从“设置”填充。 我遇到了两个奇怪的问题之一。

问题 1.) 如果我写这样的代码:

var list = Properties.UserSpecific.Default.webCombo.Cast<string>().ToList(); comboBox7.Items.Add(list);

我最终得到这个:

在此处输入图片说明

所以我试着这样写:

        string[] webDropDown = Properties.UserSpecific.Default.webCombo.Cast<string>().ToArray();
        comboBox7.DataSource = webDropDown;

但它把我的数据全部放在 1 行上。

在此处输入图片说明

据我所知,数据不在 1 行。 我可以写入富文本框,它会显示在单独的行上。 所以我不确定我做错了什么。 我还有其他几行代码:

comboBox1.DataSource = Globals.combo1;

我根本没有这个问题。 我能说的最好是问题正在发生,因为我试图让用户能够在我的设置页面中自定义Systems.Collections.Specialized.StringCollection 我通过使用此代码更新来完成此操作:

            List<string> display = new List<string>();
        display.Add(richTextBox1.Text);
        Properties.UserSpecific.Default.webCombo.Clear();
        foreach(string str in display)
        {
            Properties.UserSpecific.Default.webCombo.Add(str);
        }
        //Save All Changes
        Properties.UserSpecific.Default.Save();

我正在使用:

            //Populate DropDown Box For Websites
        var list = Properties.UserSpecific.Default.webCombo.Cast<string>().ToList();
        foreach (string str in list)
        {
            richTextBox1.Text += str;
        }

显然我做错了什么,但我无法弄清楚。

string[] webDropDown = Properties.UserSpecific.Default.webCombo.Cast<string>().ToArray();
comboBox7.Items.AddRange(webDropDown);

以下代码行正在创建问题。

List<string> display = new List<string>();
display.Add(richTextBox1.Text);

它会将整个文本添加为​​单个项目。

尝试类似下面的内容。

 List<string> display = new List<string>();
 display = richTextBox1.Text.Split('\n').ToList<string>();

添加用于项目本身

尝试

foreach(string item in list)
{
    comboBox7.Items.Add(item);
}

(代题作者贴出答案移至答案空间)。

下面的 Ken 和 Ajith 让我指明了正确的方向。 我最终遵循了肯的建议并使用了:

           string[] webDropDown = Properties.UserSpecific.Default.webCombo.Cast<string>().ToArray();
        comboBox7.Items.AddRange(webDropDown);

我还必须遵循 Ajith 的建议并进行更改:

display = richTextBox1.Text.Split('\n').ToList<string>();

以及我将内容显示回我的编辑器的方式的改变:

        var list = Properties.UserSpecific.Default.webCombo.Cast<string>().ToList();
        foreach (string str in list)
        {
            richTextBox1.Text += str + Environment.NewLine;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM