单击按钮时标签中未显示的文本

本文关键字:显示 文本 按钮 标签 单击 | 更新日期: 2023-09-27 18:29:46

我正在处理的一个项目遇到了问题,该项目涉及单击按钮,文本应该显示在我创建的标签框中。我知道当我点击按钮时,使用文本框显示文本会更容易,但我的教练希望我们使用标签来显示文本。我已经调试了这个项目,一切都表明它很好,但当我点击底部的一个按钮时,文本不会显示在指定的标签中。下面是我正在使用的代码。也许我错过了什么。例如,当我单击"客户关系"按钮时,它应该在一个标签中显示部门,在下一个标签显示联系人姓名,在下个标签显示电话号码。我希望这是足够的信息

private void btnCustomerRelations_Click(object sender, EventArgs e)
{
    lblDepartment.Text = "Customer Relations";
    lblContact.Text = "Tricia Smith";    
    lblPhone.Text = "500-1111";
}
private void btnMarketing_Click(object sender, EventArgs e)
{
    lblDepartment.Text = "Marketing";    
    lblContact.Text = "Michelle Tyler";    
    lblPhone.Text = "500-2222";    
}
private void btnOrderProcessing_Click(object sender, EventArgs e)    
{    
    lblDepartment.Text = "Order Processing";    
    lblContact.Text = "Kenna Ross";    
    lblPhone.Text = "500-3333";   
}
private void btnShipping_Click(object sender, EventArgs e)    
{    
    lblDepartment.Text = "Shipping";    
    lblContact.Text = "Eric Johnson";    
    lblPhone.Text = "500-4444";    
}

单击按钮时标签中未显示的文本

Did the project compiled without any errors ?

默认情况下,C#中的每个事件处理程序都声明为void,我在您的代码中找不到它。您是否修改了Visual Studio生成的事件处理程序,如果是这种情况,那么您面临的问题就是因为这个原因。

让我解释一下会出什么问题;

无论何时使用Visual Studio的"属性"窗口为任何控件创建事件处理程序,为了这个解释,让我取example of TextBox。假设你有一个TextBox(默认名称为textBox1),并且你订阅了它的TextChanged Event(为了做到这一点,在Visual Studio的事件窗口中定位TextChanged事件并双击它,当你这样做时,Visual Studio会为你生成它;

private void textBox1_TextChanged(object sender,EventArgs e)
{
}

这就是我们程序员所说的Event Handler,现在定位Solution Explorer Window in Visual Studio点击Form1.Designer.cs,你会在那里得到很多代码,定位写的行

private System.Windows.Forms.TextBox textBox1;

其中textBox1是控件的名称。找到该点上方的加号,单击它并找到以下代码;

// 
// textBox1
// 
this.textBox1.AcceptsReturn = true;
this.textBox1.Location = new System.Drawing.Point(478, 0);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(359, 23);
this.textBox1.TabIndex = 1;
this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);

PS:The Location , AcceptsReturn , Size and TabIndex property in yours might not be same as mine.

阅读这段代码的最后一行,上面写着;

this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);

其中textBox1_TextChanged is the name of event which must be same as that defined in Form1.cs.如果对此进行修改,则会出现各种编译时错误。

现在我想您知道Form1.cs(主代码文件)和Form1.Designer.cs(代码隐藏文件)之间的关系了。

总之,结论是要确保;

Any event handler function in Form1.cs私有无效开始,以及private void后面的单词与该特定控件的代码隐藏文件中定义的完全相同。如果你想阅读更多关于这方面的内容,请看这里。

希望它能帮助你解决这个问题。还有什么请通知我。

您是否尝试在每个方法的末尾插入Application.DoEvents()语句?有时表单对更新标签很挑剔,这种方法会迫使表单重新绘制自己。