【问题标题】:C# Combobox not populating from list correctlyC# 组合框未正确从列表中填充
【发布时间】:2020-03-02 02:07:00
【问题描述】:

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

问题 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 行。我可以写一个richtextbox,它显示在单独的行上。所以我不确定我做错了什么。我还有其他代码行:

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;
        }

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

【问题讨论】:

    标签: c# list combobox formatting settings


    【解决方案1】:
    string[] webDropDown = Properties.UserSpecific.Default.webCombo.Cast<string>().ToArray();
    comboBox7.Items.AddRange(webDropDown);
    

    【讨论】:

    • 谢谢你,Ken 这对我有帮助,正如 Ajith Nair 在下面指出的那样,我还必须做出一些改变。
    【解决方案2】:

    以下代码行造成了问题。

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

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

    试试下面的方法。

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

    【讨论】:

    • 谢谢 Ajith Nair,上面的 Ken 评论已得到修复。
    【解决方案3】:

    添加是为项目本身添加的

    试试

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

    【讨论】:

      【解决方案4】:

      (代表问题作者发布解决方案,将其移至答案空间)。

      下面的 Ken 和 Ajith 让我指出了正确的方向。我最终听从了 Ken 的建议并使用了:

                 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;
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 2021-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多