【发布时间】:2020-02-26 07:22:15
【问题描述】:
我需要将学生作业成绩的转置数组显示到 MessageBox。我有转置数组部分,但我需要消息框有行和列标签。
现在输出的 MessageBox 只显示一个 3 行 5 列的成绩矩阵:
decimal[,] decGrades = { { 87m, 88m, 89m },
{ 90m, 95m, 100m },
{ 70m, 80m, 90m },
{ 50m, 50m, 50m },
{ 80m, 92m, 94m } };
string[] strStudentNames = { "Adams", "Benson", "Carson",
"Daley", "Edwards" };
string[] strAssignmentNames = { "HW1", "HW2", "Exam1" };
private decimal[,] TransposeMatrix(decimal[,] newArray)
{
decimal[,] TransposedArray = new decimal[newArray.GetLength(1),
newArray.GetLength(0)];
for (int column = 0; column < newArray.GetLength(1); column++)
{
for (int row = 0; row < newArray.GetLength(0); row++)
{
TransposedArray[column, row] = newArray[row, column];
}
}
return TransposedArray;
}
private void BtnTranspose_Click(object sender, EventArgs e)
{
decGrades = TransposeMatrix(decGrades);
////CODE TO SEND GRADES ARRAY TO MESSAGE BOX
string gradesString = "";
for (int i = 0; i < decGrades.GetLength(0); i++)
{
for (int j = 0; j < decGrades.GetLength(1); j++)
{
gradesString += decGrades[i, j] + " ";
}
gradesString += "\n";
}
MessageBox.Show(gradesString, "Transposed Array");
我似乎无法弄清楚如何将 strStudentNames 中的字符串数组值显示为列标签,将 strAssignmentNames 显示为行标签。
非常感谢我能在这方面获得的任何帮助。谢谢!
【问题讨论】:
-
MessageBox 不是表格数据的合适 UI 元素。它不是为此而设计的。它旨在传达状态消息,例如错误和任务完成。您需要创建自己的表单,该表单可以在 DataGridView 或类似控件中显示数据并将其显示为模式对话框。
-
您可以使用 datagridview 设置自定义表单的样式,使其看起来像带有行和列的 MessageBox ;)