gpt4 book ai didi

c# - 发送 checkedListBox.CheckedItems 到 richTextBox

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:29 24 4
gpt4 key购买 nike

我有一个项目,我将文本插入到 TextBox 中,所述文本成为 checkeListBox 中的 Item。到现在为止一切都很好。通过按下按钮,我希望 checkedlistBox 中的所有 checked Items 都显示在位于另一种形式的 RichTextBox 中。我已经弄清楚了第二种形式的命令......我似乎无法将 checkedItems 发送到 RichTextBox

附言: 我有几个 CheckedListBoxes 如果有任何相关性,需要将其发送到 RichTextBox

更新:

我用过

List<string> Items = checkedListBox1.CheckedItems.Cast<string>().ToList();` 

checkedListBox1.Items 转换为字符串。但是,如果我试着写

fc.richTextBox1.Text = Items;

(fc 是我的 Form1)我收到一条错误消息

can not convert type "...." to "string"`.

如何解决这个错误?添加变量或其他内容?

第二次更新:

问题差不多解决了。我之前使用的代码不正确,因为我无法将字符串形式的 richTextBox.Text 转换为 .因此,我使用了答案中建议的另一行代码。这是我收到的错误: Image with the Unhandled Exception

再次感谢大家!一旦找到解决方案,我会立即更新!

其他问题的解决方案无效:

First Question I found

关于这个的事情是它部分起作用了。我在问题的开头显示了它。

Second Quesstion I found

尽管这与我的代码并不严格相关,但我尝试将其转换为可以正常工作。我达到了它部分工作的程度,但我得到了屏幕截图中显示的相同错误。

This Question is from another website

当我开始这个项目时,我也尝试使用 for。但问题是它遍历了整个列表。我有 4 个单独的 checkedListBoxes ,而不是包含所有内容的单个。此外,每个盒子都有 10 个条目的限制,而第 4 个盒子可以容纳无限数量。

我也从中找到了几个解决方案,但与我的需求没有任何关系。

    private void button1_Click(object sender, EventArgs e)
{
i++;
if (i <= 10)
checkedListBox1.Items.Insert(0, textBox1.Text);
if (i >= 11 && i <= 20)
{
if (checkedListBox2.Items == checkedListBox1.Items)
{
checkedListBox2.Items.Clear();
}
checkedListBox2.Items.Insert(0, textBox1.Text);
}
if (i >= 21 && i <= 30)
checkedListBox3.Items.Insert(0, textBox1.Text);
if (i >= 31)
checkedListBox4.Items.Insert(0, textBox1.Text);
textBox1.Text = "";
}

private void button3_Click(object sender, EventArgs e)
{
checkedListBox1.Items.Clear();
checkedListBox2.Items.Clear();
checkedListBox3.Items.Clear();
checkedListBox4.Items.Clear();
}

private void button5_Click(object sender, EventArgs e)
{
f2.ShowDialog();
}

private void button2_Click(object sender, EventArgs e)
{
f3.ShowDialog();
/*StringBuilder sb = new StringBuilder();

foreach (string S in checkedListBox1.CheckedItems)
{
sb.Append(S + Environment.NewLine);
}

fc.richTextBox1.Text = sb.ToString();
*/
/*
StringBuilder sb = new StringBuilder();

foreach (object checkedItem in checkedListBox1.CheckedItems)
{
{
sb.Append(checkedItem.ToString() + Environment.NewLine);
}

fc.richTextBox1.Text = sb.ToString();
}
*/
fc.richTextBox1.Text = String.Join("\n", checkedListBox1.CheckedItems);
}

private void button6_Click(object sender, EventArgs e)
{
Ab1.ShowDialog();
}

}

Form2 f2 = new Form2();
Form3 fc = new Form3();

问题的最终更新和回答

标记答案是我阅读的所有答案中对这个问题的正确答案。出现错误是因为我在代码中使用了不同的 form 作为引用,而不是包含 Richtextbox 的那个。我没有早点注意到是我的错误,但至少我了解了导致这些 NullException 错误的原因。对造成的困扰深表歉意!

谢谢大家的帮助和时间,这个项目真的对我有帮助,但我无法完成它。

最佳答案

Text RichTextBox 的属性是 string .正如您在错误消息中看到的那样,它要求只是一个字符串 而不是 List<string> .您需要遍历列表并将所有行添加到文本框。我会说最简单的方法是使用 StringBuilder :

StringBuilder sb = new StringBuilder();

foreach(string S in Items)
{
sb.Append(S + Environment.NewLine);
}

fc.richTextBox1.Text = sb.ToString();

正如@Spacemancraig 在评论中建议的那样,您也可以直接从项目中执行此操作:

StringBuilder sb = new StringBuilder();

foreach (object checkedItem in checkedListBox1.CheckedItems) {
{
sb.Append(checkedItem.ToString() + Environment.NewLine);
}

fc.richTextBox1.Text = sb.ToString();

关于c# - 发送 checkedListBox.CheckedItems 到 richTextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27929997/

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