【发布时间】:2019-09-02 14:50:03
【问题描述】:
我正在尝试在文本框中显示类似的内容。
Name Test Basket Destructive Final Grade
--------------------------------------------------
Alex 0 0 0 0
Danny 0 0 0 0
Dave 0 0 0 0
这就是我得到的:
Name Test Basket Destructive Final Grade
--------------------------------------------------
Alex 0 0 0 0
Danny 0 0 0 0
Dave 0 0 0 0
比这更糟糕,因为我认为 0 的位置错误。
这个想法是让列在顶部,在它下面应该看起来像:
Name - Grade 1 - Grade 2 - Grade 3 - Final Grade
我做错了什么?
我也非常不擅长 for 循环,这就是为什么我认为 0 出现在错误位置的原因。
string[] Columns = { "Name","Test", "Basket","Destructive","Final Grade"};
string[] Names = { "Alex", "Danny", "Dave", "Goerge", "Hannan", "Ian", "Muna" };
int[,] Grade = new int[7, 3];
int[] FinalGrade = new int[7];
private void uiShowMarksAZButton_Click(object sender, EventArgs e)
{
//test
Grade[0, 0] = 10;
//test
uiMarksDisplayTextBox.Text = string.Join("\t", Columns);
uiMarksDisplayTextBox.Text += System.Environment.NewLine;
for (int i = 0; i < Names.Length; i++ )
{
uiMarksDisplayTextBox.Text += (Names[i]);
for (int x = 0; x < 3; x++)
{
uiMarksDisplayTextBox.Text += ("\t" + Grade[x, x]);
}
uiMarksDisplayTextBox.Text += System.Environment.NewLine;
}
}
编辑 1:添加一些说明,我的教授给了我表单的布局,我不允许更改它或文本框,这意味着我不能使用数据网格或列表视图。
当我输入 Alex 的成绩时,它看起来像这样:
Name Test Basket Destructive Final Grade
-------------------------------------------------
Alex 10 0 0
Danny 10 0 0
Dave 10 0 0
George 10 0 0
Hannan 10 0 0
Ian 10 0 0
Muna 10 0 0
为什么所有的 0 都在错误的位置?
【问题讨论】:
-
只需使用列表视图/数据网格即可完成,但如果您不想这样做,则必须适当地填充项目
-
您是否考虑过使用 DataGridView 或 ListView 来呈现该数据?
-
如果没有“winforms”标签,这将与stackoverflow.com/questions/4579506/… 重复……但
sting.Format对于存在如此多丰富表格布局控件的WinForms 来说是非常奇怪的选择。 -
尝试在
TextBox上设置Monospace字体。这应该可以解决问题。 -
不要添加所有这些空格。只是标签。在您的列连接上使用“\t”。破坏性的单词太长,会将下一列标题推到一个额外的选项卡上。是的,为此使用了错误的工具。
标签: c# winforms multidimensional-array