我有一个组合框,试图在用户编辑完数据后从“设置”中填充该组合框。我遇到了两个奇怪的问题之一。
问题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行上。我可以写一个富文本框,它显示在单独的行上。所以我不确定我在做什么错。我还有其他代码行:
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;
}
很明显我在做错事,但是我无法弄清楚。
答案 0 :(得分:3)
string[] webDropDown = Properties.UserSpecific.Default.webCombo.Cast<string>().ToArray();
comboBox7.Items.AddRange(webDropDown);
答案 1 :(得分:1)
下面的代码行导致了问题。
List<string> display = new List<string>();
display.Add(richTextBox1.Text);
它将整个文本添加为单个项目。
尝试以下类似方法。
List<string> display = new List<string>();
display = richTextBox1.Text.Split('\n').ToList<string>();
答案 2 :(得分:0)
添加是针对项目本身
尝试
foreach(string item in list)
{
comboBox7.Items.Add(item);
}
答案 3 :(得分:0)
(代表问题作者发布了解决方案,将其移至答案空间)。
下面的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;
}