C# 在一个messagebox中列出所有combobox项

C# 在一个messagebox中列出所有combobox项,c#,for-loop,combobox,C#,For Loop,Combobox,我试图在一个messagebox中列出所有combobox项。但我得到的只是每一项都在它自己的消息框中出现。我知道messagebox需要在循环之外,但当我这样做时,它会说变量未赋值。任何帮助都会很好 私有void DisplayYachtypesToolStripMenuItem\u单击(对象发送者,事件参数e) { 字符串类型字符串; 对于(int indexInteger=0;indexInteger

我试图在一个messagebox中列出所有combobox项。但我得到的只是每一项都在它自己的消息框中出现。我知道messagebox需要在循环之外,但当我这样做时,它会说变量未赋值。任何帮助都会很好

私有void DisplayYachtypesToolStripMenuItem\u单击(对象发送者,事件参数e) {

字符串类型字符串;
对于(int indexInteger=0;indexInteger
试试这个

            string yachtTypesString="";

    for (int indexInteger = 0; indexInteger < typeComboBox.Items.Count; indexInteger++)

    {
        yachtTypesString=yachtTypesString +  typeComboBox.Items[indexInteger].ToString();

    }

     MessageBox.Show(yachtTypesString);
字符串类型字符串=”;
对于(int indexInteger=0;indexInteger
像这样做

    StringBuilder yachtTypesString = new StringBuilder();
    for (int indexInteger = 0; indexInteger < typeComboBox.Items.Count; indexInteger++)
    {
        yachtTypesString.AppendLine(typeComboBox.Items[indexInteger].ToString());
    }
    MessageBox.Show(yachtTypesString.ToString());
StringBuilder-typesstring=new-StringBuilder();
对于(int indexInteger=0;indexInteger
注意:不要使用字符串连接字符串,请使用StringBuilder对象,因为在字符串中连接会创建新实例。

您可以尝试使用Linq:

MessageBox.Show(String.Join(Environment.NewLine,typeComboBox.Items.Cast());

并让它为您完成所有工作

在一个messagebox中列出所有combobox项

请使用下面的代码获得Combobox所有文本

私有void Form1\u加载(对象发送方、事件参数e) { DataTable dtcheck=新DataTable(); dtcheck.Columns.Add(“ID”); dtcheck.Columns.Add(“名称”);
对于(int i=0;我认为这样做会浪费大量字符串实例,请使用字符串生成器进行类似的处理。谢谢大家,这在这里起到了作用。我只需添加一个Environment.NewLine,以便它们都显示在新行上。问题是您需要将string YachtypesString;赋值为空字符串YachtypesStringring=“”;它将起作用
消息框底部将有一个空行,因为最后一个
游艇类型字符串。AppendLine
添加了carrige return
    StringBuilder yachtTypesString = new StringBuilder();
    for (int indexInteger = 0; indexInteger < typeComboBox.Items.Count; indexInteger++)
    {
        yachtTypesString.AppendLine(typeComboBox.Items[indexInteger].ToString());
    }
    MessageBox.Show(yachtTypesString.ToString());
  MessageBox.Show(String.Join(Environment.NewLine, typeComboBox.Items.Cast<String>()));
        comboBox1.ValueMember = "ID";
        comboBox1.DisplayMember = "Name";
        comboBox1.DataSource = dtcheck;


    }
}

    private void button1_Click(object sender, EventArgs e)
    {

        string MessageText = string.Empty;

        foreach(object item in comboBox1.Items)
        {
           DataRowView row = item as DataRowView;

           MessageText += row["Name"].ToString() + "\n";
        }

        MessageBox.Show(MessageText, "ListItems", MessageBoxButtons.OK,MessageBoxIcon.Information);
    }