如何在消息框正文中显示string
列表的内容?
这是我到目前为止所拥有的:
List<string> a = new List<string> {};
foreach (DataGridViewCell cell in dgvC.SelectedCells)
{
a.Add(cell.Value.ToString());
}
MessageBox.Show(a); // doesn't work !?
答案 0 :(得分:7)
MessageBox.Show(string.Join(Environment.NewLine, a));
这假设您正在获取“System.Collections.Generic.List`1 [System.String]”的内容作为消息。
答案 1 :(得分:7)
MessageBox需要一个不是列表的字符串
StringBuilder sb = new StringBuilder();
foreach (DataGridViewCell cell in dgvC.SelectedCells)
{
sb.AppendLine(cell.Value.ToString());
}
MessageBox.Show(sb.ToString());
答案 2 :(得分:4)
MessageBox.Show
需要一个字符串。如果您需要这种格式,可以像这样构建它:
StringBuilder builder = new StringBuilder();
foreach (DataGridViewCell cell in dgvC.SelectedCells.OrderBy(c => c.Index))
builder.AppendLine(cell.Value);
}
MessageBox.Show(builder.ToString());
如果您需要更复杂的输出,则可能需要创建一个新表单来显示它。
答案 3 :(得分:3)
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);
答案 4 :(得分:3)
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);
答案 5 :(得分:3)
MessageBox无法显示除字符串以外的任何数据类型。您需要将列表格式化为字符串,例如:
MessageBox.Show(string.Join(", ", a.ToArray()));
答案 6 :(得分:3)
试试这个
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());