Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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# 设置后无法更改Windows窗体中标签的背景色_C#_Winforms - Fatal编程技术网

C# 设置后无法更改Windows窗体中标签的背景色

C# 设置后无法更改Windows窗体中标签的背景色,c#,winforms,C#,Winforms,首先,我创建了这个LightGray块数组,并单击“开始”按钮。因此,当我单击“开始”时,所选块将变为绿色: 每个浅灰色块都存储在名为blockLabel的标签数组中。此块标签由面板添加 下面是处理按钮的代码: private void btnStart_Click(object sender,EventArgs e) { CreateBlock(); } private void CreateBlock() { blockLabel[5,0].BackColo

首先,我创建了这个LightGray块数组,并单击“开始”按钮。因此,当我单击“开始”时,所选块将变为绿色:

每个浅灰色块都存储在名为blockLabel的标签数组中。此块标签由面板添加

下面是处理按钮的代码:

private void btnStart_Click(object sender,EventArgs e) {
        CreateBlock();
}
private void CreateBlock() {
        blockLabel[5,0].BackColor = Color.ForestGreen;
}
区块标签代码:

blockLabel = new System.Windows.Forms.Label[numCol,numRow];
        // Create many block label
        int i,j;
        for (i = 0; i < numCol; i++) {
            for (j = 0; j < numRow; j++) {
                blockLabel[i,j] = new System.Windows.Forms.Label {
                    Location = new System.Drawing.Point(33*i,33*j),
                    Size = new System.Drawing.Size(30,30),
                    BackColor = Color.LightGray,
                    TabIndex = numCol*i + j
                };
            }
        }
        // World is the panel
        for (i = 0; i < numCol; i++) {
            for (j = 0; j < numRow; j++) {
                World.Controls.Add(blockLabel[i,j]);
            }
        }
blockLabel=newsystem.Windows.Forms.Label[numCol,numRow];
//创建多个块标签
int i,j;
对于(i=0;i
设计师添加的世界面板


当我单击“开始”时,似乎什么都没有发生。有什么帮助吗?

问题是您的按钮控件没有连接到您定义的单击事件。您可以通过设计器选择按钮来执行此操作,然后在
属性
窗口中,单击
事件
图标(闪电),然后向下滚动到
单击事件,并从下拉列表中选择您的方法:


如果以编程方式添加按钮,则只需将事件处理程序添加到click事件,如下所示:

Button btnStart = new Button();
btnStart.Click += btnStart_Click;  // This adds your event hander code to the click event

Controls.Add(btnStart);

问题是您的按钮控件没有连接到您定义的单击事件。您可以通过设计器选择按钮来执行此操作,然后在
属性
窗口中,单击
事件
图标(闪电),然后向下滚动到
单击事件,并从下拉列表中选择您的方法:


如果以编程方式添加按钮,则只需将事件处理程序添加到click事件,如下所示:

Button btnStart = new Button();
btnStart.Click += btnStart_Click;  // This adds your event hander code to the click event

Controls.Add(btnStart);

您是如何制作区块标签的?这里没有足够的代码来重现问题…显示您创建区块标签数组的代码。btnStart是否连接到Click事件处理程序?请编辑您的问题以将额外信息放入其中,而不是添加注释。您是如何制作区块标签的?此处没有足够的代码来重现此问题…显示您创建区块标签数组的代码。btnStart是否连接到单击事件处理程序?请编辑您的问题以将额外信息放入其中,而不是添加注释。这是正确的,然而,OP是以编程方式创建这些元素的-您能否添加一个示例,说明他如何在代码中实现这些元素?这是正确的,但是OP是以编程方式创建这些元素的-您能否添加一个示例,说明他如何在代码中实现这些元素?