如何在消息框中获取列表
本文关键字:获取 列表 消息 | 更新日期: 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);