如何在消息框中获取列表

本文关键字:获取 列表 消息 | 更新日期: 2023-09-27 18:36:17

如何在消息框的正文中显示string列表的内容?

这是我到目前为止所拥有的:

List<string> a = new List<string> {}; 
foreach (DataGridViewCell cell in dgvC.SelectedCells) 
{ 
    a.Add(cell.Value.ToString()); 
} 
MessageBox.Show(a);  // doesn't work !?

如何在消息框中获取列表

MessageBox.Show(string.Join(Environment.NewLine, a)); 

这是假设您得到的是"System.Collections.Generic.List'1[System.String]"作为消息。

MessageBox 需要字符串而不是列表

StringBuilder sb = new StringBuilder();
foreach (DataGridViewCell cell in dgvC.SelectedCells)
{
    sb.AppendLine(cell.Value.ToString()); 
}
MessageBox.Show(sb.ToString());
List<string> list = new List<string> {}; 
foreach (DataGridViewCell cell in dgvC.SelectedCells) 
{ 
a.Add(cell.Value.ToString()); 
} 
string s = String.Join(",", list);
MessageBox.Show(s);

MessageBox.Show需要一个字符串。如果你需要这种格式的它,你可以像这样构建它:

StringBuilder builder = new StringBuilder();
foreach (DataGridViewCell cell in dgvC.SelectedCells.OrderBy(c => c.Index))
    builder.AppendLine(cell.Value);
}
MessageBox.Show(builder.ToString());

如果需要更复杂的输出,则可能需要创建一个新窗体来显示它。

MessageBox 不能显示除字符串以外的任何数据类型。 您需要将列表格式化为字符串,例如:

MessageBox.Show(string.Join(", ", a.ToArray()));

试试这个

StringBuilder builder = new StringBuilder();
foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
{
    if (cell.ValueType == typeof(String))
    {
        builder.Append(cell.Value);
    } 
}
MessageBox.Show(builder.ToString());

请注意,如果您想避免反对票,则需要开始正确格式化问题。

我希望这有所帮助。

编辑:或...

StringBuilder builder = new StringBuilder();
for (int i = dataGridView1.SelectedCells.Count - 1; i >= 0; i--)
    if (dataGridView1.SelectedCells[i].ValueType == typeof(String))
        builder.Append(dataGridView1.SelectedCells[i].Value.ToString());
MessageBox.Show(builder.ToString());

MessageBox.Show 将字符串作为参数。

string result;
foreach (DataGridViewCell cell in dgvC.SelectedCells) 
{ 
   //choose one
   //result += cell.Value.ToString() + Environment.NewLine;
   //or
   result = cell.Value.ToString() + Environment.NewLine + result;
} 
MessageBox.Show(result);