单击按钮时标签中未显示的文本
本文关键字:显示 文本 按钮 标签 单击 | 更新日期: 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()
语句?有时表单对更新标签很挑剔,这种方法会迫使表单重新绘制自己。