0

stringリストの内容をメッセージボックスの本文に表示するにはどうすればよいですか?

これが私がこれまでに持っているものです:

List<string> a = new List<string> {}; 
foreach (DataGridViewCell cell in dgvC.SelectedCells) 
{ 
    a.Add(cell.Value.ToString()); 
} 

MessageBox.Show(a);  // doesn't work !?
4

7 に答える 7

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

これは、メッセージとして「System.Collections.Generic.List`1[System.String]」の行に沿って何かを取得していることを前提としています。

于 2012-06-05T20:27:29.453 に答える
7

MessageBoxには、リストではなく文字列が必要です

StringBuilder sb = new StringBuilder();
foreach (DataGridViewCell cell in dgvC.SelectedCells)
{
    sb.AppendLine(cell.Value.ToString()); 
}
MessageBox.Show(sb.ToString());
于 2012-06-05T20:29:28.253 に答える
5
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);
于 2012-06-05T20:28:23.603 に答える
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());

より洗練された出力が必要な場合は、それを表示するために新しいフォームを作成する必要があります。

于 2012-06-05T20:28:22.447 に答える
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);
于 2012-06-05T20:28:20.017 に答える
3

MessageBoxは、文字列以外のデータ型を表示できません。リストを次のような文字列としてフォーマットする必要があります。

MessageBox.Show(string.Join(", ", a.ToArray()));
于 2012-06-05T20:28:27.797 に答える
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());
于 2012-06-05T20:33:34.433 に答える