Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 新创建的标签将不显示GUI_C#_User Interface - Fatal编程技术网

C# 新创建的标签将不显示GUI

C# 新创建的标签将不显示GUI,c#,user-interface,C#,User Interface,我在gui中显示我的标签时遇到了一些问题。。。有什么想法吗 private void addNewExcerciseButton_Click(object sender, EventArgs e) { int y = 305; int x= 61; string tempExcercise = excerciseTextBox.Text; excerciseTextBox.Clea

我在gui中显示我的标签时遇到了一些问题。。。有什么想法吗

private void addNewExcerciseButton_Click(object sender, EventArgs e)
        {

            int y = 305;
            int x= 61;

            string tempExcercise = excerciseTextBox.Text;
            excerciseTextBox.Clear();


           Label[] excerciseLabels = new Label[numExercises];



           for (int i = 0; i < numExercises; ++i)
           {
                excerciseLabels[i] = new Label();
                excerciseLabels[i].Text = ToString("{0}. {1}", i + 1, tempExcercise);;
                excerciseLabels[i].Location = new System.Drawing.Point(x, y);
                x += 10;
                y += 10;


                ++numExercises;
           }
}
private void addnewexercisebutton_单击(对象发送者,事件参数e)
{
int y=305;
int x=61;
字符串tempexercise=exercisettextbox.Text;
exercisettextbox.Clear();
Label[]exerciselabels=新标签[numExercises];
for(int i=0;i
提前谢谢


numExercises是全局的。

您需要将标签添加到GUI:

this.Controls.Add(excersizeLabels[i]);

作为补充说明,使用数组没有任何意义。

您需要将标签添加到GUI:

this.Controls.Add(excersizeLabels[i]);

作为补充说明,使用数组没有任何意义。

您必须将每个新标签添加到可见控件(例如表单)包含的控件集合中。您正在创建和设置它们,但它们在进入控制层次结构之前还不是GUI的一部分

在设置标签位置后添加以下行:

this.Controls.Add(exerciseLabels[i]);

必须将每个新标签添加到可见控件(例如表单)包含的控件集合中。您正在创建和设置它们,但它们在进入控制层次结构之前还不是GUI的一部分

在设置标签位置后添加以下行:

this.Controls.Add(exerciseLabels[i]);

我将创建超过20个标签,所以我制作了一个数组来实现。我不同意数组没有意义,但你是对的,他可以定义一个列表,设置初始容量,并获得几乎相同的性能。我经常保留具有通用功能的控件,或者我希望在集合中对其执行类似的操作。使它们比迭代整个控件层次结构更容易获取,特别是当控件位于该层次结构的不同级别时。如果性能相同。。。这仅仅是因为偏好吗?也许列表更容易实现。列表的主要优点是可调整大小,因此,不必预先定义集合的大小(并且必须知道该值),您只需创建一个空列表并添加到其中,直到完成为止。但是,这需要付出代价;该列表在后台使用阵列,当空间不足时,必须创建一个更大的阵列,并且在添加时会发生多次(每次必须调整阵列的大小时,阵列的大小将加倍,这也会创建未使用的容量)。指定初始容量,就像您必须使用阵列一样,可以缓解这种情况。我将创建超过20个标签,因此我制作了一个阵列来实现这一点。我不同意阵列没有任何意义,但是你是对的,他可以定义一个列表,设置初始容量,并获得几乎相同的性能。我经常在集合中保留具有公共功能或希望执行类似操作的控件。使它们比迭代整个控件层次结构更容易获取,特别是当控件位于该层次结构的不同级别时。如果性能相同。。。这仅仅是因为偏好吗?也许列表更容易实现。列表的主要优点是可调整大小,因此,不必预先定义集合的大小(并且必须知道该值),您只需创建一个空列表并添加到其中,直到完成为止。但是,这需要付出代价;该列表在后台使用阵列,当空间不足时,必须创建一个更大的阵列,并且在添加时会发生多次(每次必须调整阵列的大小时,阵列的大小将加倍,这也会创建未使用的容量)。指定初始容量,就像您必须使用阵列一样,可以缓解这种情况。