C# 在标签而不是文本框中显示消息

C# 在标签而不是文本框中显示消息,c#,winforms,C#,Winforms,我有一个程序,可以在我的计算机上获取系统信息,我希望它能够比较另一台计算机上的信息系统,如果参数相同,那么我会写一条消息“匹配”,如果参数不一致,我的程序工作得很好,当我使用textbox时,如下所示 private void button1_Click(object sender, EventArgs e) { System.OperatingSystem OS = System.Environment.OSVersion; Ge

我有一个程序,可以在我的计算机上获取系统信息,我希望它能够比较另一台计算机上的信息系统,如果参数相同,那么我会写一条消息“匹配”,如果参数不一致,我的程序工作得很好,当我使用textbox时,如下所示

private void button1_Click(object sender, EventArgs e)
        {
            System.OperatingSystem OS = System.Environment.OSVersion;
            GetSystemInfo(ref n);

            string processor;
            switch (n.processorArchitecture)
            {
                case 0: processor = "Intel(x84)";
                    break;
                case 9: processor = "AMD or Intel (x64)";
                    break;
                default: processor = "Unknown";
                    break;
            }
            textBox10.Text = processor;
            textBox11.Text = Convert.ToString(n.pageSize);
            textBox12.Text = Convert.ToString(n.minimumApplicationAddress);
            textBox13.Text = Convert.ToString(n.maximumApplicationAddress);
            textBox14.Text = Convert.ToString(n.activeProcessorMask);
            textBox15.Text = Convert.ToString(n.numberOfProcessors);
            textBox16.Text = Convert.ToString(n.processorType);
            textBox17.Text = Convert.ToString(n.processorLevel);
            textBox18.Text = Convert.ToString(n.processorRevision);

            int k = 13; 

            for (int i = 9, j = 10; i > 0 && j < 19; i--, j++)
            {
                if (this.Controls["textBox" + i.ToString()].Text == this.Controls["textBox" + j.ToString()].Text)
                    {

                        this.Controls["label" + k.ToString()].Visible = true;
                        this.Controls["label" + k.ToString()].Text = "VS";
                        this.Controls["label" + k.ToString()].ForeColor = Color.DarkGreen;
                    }
                    else
                    {
                        this.Controls["label" + k.ToString()].Visible = true;
                        this.Controls["label" + k.ToString()].Text = "X";
                        this.Controls["label" + k.ToString()].ForeColor = Color.Red;
                    }


                k++;
            }

            Check();




        }

        private void textBox8_TextChanged(object sender, EventArgs e)
        {
            if (textBox8.Text == textBox11.Text)
            {
                label14.Text = "VS";
                label14.ForeColor = Color.DarkGreen;
            }
            else
            {
                label14.Text = "X";
                label14.ForeColor = Color.Red;
            }
            Check();
        }
上面的代码工作得很好,但我只是一个新手,所以我想尝试只使用标签,我把代码改成了这个

private void button1_Click(object sender, EventArgs e)
        {
            System.OperatingSystem OS = System.Environment.OSVersion;
            GetSystemInfo(ref n);

            string processor;
            switch (n.processorArchitecture)
            {
                case 0: processor = "Intel(x84)";
                    break;
                case 9: processor = "AMD or Intel (x64)";
                    break;
                default: processor = "Unknown";
                    break;
            }
            label10.Text = processor;
            label11.Text = Convert.ToString(n.pageSize);
            label12.Text = Convert.ToString(n.minimumApplicationAddress);
            label13.Text = Convert.ToString(n.maximumApplicationAddress);
            label14.Text = Convert.ToString(n.activeProcessorMask);
            label15.Text = Convert.ToString(n.numberOfProcessors);
            label16.Text = Convert.ToString(n.processorType);
            label17.Text = Convert.ToString(n.processorLevel);
            label27.Text = Convert.ToString(n.processorRevision);

            int k = 13;

            for (int i = 9, j = 10; i > 0 && j < 19; i--, j++)
            {
                if (this.Controls["label" + i.ToString()].Text == this.Controls["label" + j.ToString()].Text)
                {

                    this.Controls["label" + k.ToString()].Visible = true;
                    this.Controls["label" + k.ToString()].Text = "VS";
                    this.Controls["label" + k.ToString()].ForeColor = Color.DarkGreen;
                }
                else
                {
                    this.Controls["label" + k.ToString()].Visible = true;
                    this.Controls["label" + k.ToString()].Text = "X";
                    this.Controls["label" + k.ToString()].ForeColor = Color.Red;
                }


                k++;
            }

            Check();

        }

private void label11_TextChanged(object sender, EventArgs e)
        {
            if (label11.Text == label29.Text)
            {
                label19.Text = "VS";
                label19.ForeColor = Color.DarkGreen;
            }
            else
            {
                label19.Text = "X";
                label19.ForeColor = Color.Red;
            }
            Check();
        }
private void按钮1\u单击(对象发送者,事件参数e)
{
System.OperatingSystem OS=System.Environment.OSVersion;
GetSystemInfo(参考号n);
字符串处理器;
交换机(n.处理器架构)
{
案例0:处理器=“英特尔(x84)”;
打破
案例9:处理器=“AMD或英特尔(x64)”;
打破
默认值:processor=“未知”;
打破
}
label10.Text=处理器;
label11.Text=Convert.ToString(n.pageSize);
label12.Text=Convert.ToString(n.minimumApplication地址);
label13.Text=Convert.ToString(n.maximumApplicationAddress);
label14.Text=Convert.ToString(n.activeProcessorMask);
label15.Text=Convert.ToString(n.numberOfProcessors);
label16.Text=Convert.ToString(n.processorType);
label17.Text=Convert.ToString(n.processorLevel);
label27.Text=Convert.ToString(n.processorRevision);
int k=13;
对于(inti=9,j=10;i>0&&j<19;i--,j++)
{
if(this.Controls[“label”+i.ToString()]Text==this.Controls[“label”+j.ToString()]Text)
{
this.Controls[“label”+k.ToString()]。Visible=true;
this.Controls[“label”+k.ToString()]Text=“VS”;
this.Controls[“label”+k.ToString()]。ForeColor=Color.DarkGreen;
}
其他的
{
this.Controls[“label”+k.ToString()]。Visible=true;
this.Controls[“label”+k.ToString()]Text=“X”;
这个.控件[“label”+k.ToString()]。前景色=Color.Red;
}
k++;
}
检查();
}
私有无效标签11_TextChanged(对象发送方,事件参数e)
{
if(label11.Text==label29.Text)
{
label19.Text=“VS”;
label19.ForeColor=Color.DarkGreen;
}
其他的
{
标签19.Text=“X”;
label19.ForeColor=颜色。红色;
}
检查();
}

此操作正在运行,但结果不正确,并且来自计算机的参数未显示在表单上?提前感谢,很可能是以下功能:

private void label11_TextChanged(object sender, EventArgs e)
未绑定到id为label11的
标签

要确保它已绑定,请在表单的
Load
事件中编写以下代码:

label11.OnTextChanged +=label11_TextChanged;

您仍然需要为输入字段使用文本框。用户不能通过将标签值作为文本框写入来更改标签值。
label11.OnTextChanged +=label11_TextChanged;