我遇到了将按钮显示在文本框中的输入到标签的问题。这就是它的样子。
现在忘记单选按钮和复选框。我希望用户在文本框内输入的内容与占位符“Name:”一起显示在按钮右侧的标签上。
// Name TextBox
//***********************************************************
//Enter your name textbox
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
//Empties the textbox once it's focused
private void textBox1_Enter(object sender, EventArgs e)
{
if(textBox1.Focus())
textBox1.Text = String.Empty;
}
//Resets the placeholder text for password textbox
private void textBox1_Leave(object sender, EventArgs e)
{
if(!textBox1.Focused)
textBox1.Text = "Name: ";
}
//***********************************************************
// Password TextBox
//***********************************************************
//Enter your password textbox
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
//Empties the password textbox once it's focused
private void textBox2_Enter(object sender, EventArgs e)
{
if(textBox2.Focus())
textBox2.Text = String.Empty;
}
//Resets the placeholder text for password textbox
private void textBox2_Leave(object sender, EventArgs e)
{
if(!textBox2.Focused)
textBox2.Text = "Password: ";
}
//***********************************************************
//Display Name button
private void button1_Click(object sender, EventArgs e)
{
label5.Text = textBox1.Text;
}
//Display password button
private void button2_Click(object sender, EventArgs e)
{
label6.Text = textBox2.Text;
}
1)只是为了澄清:我已经在文本框中将初始文本作为占位符。一旦失去焦点,占位符文本将重新出现在文本框内。我已经使用了focus()方法和聚焦属性,因为我根本不知道其中的区别。 (我不知道是否应该在另一个问题中询问两者之间的区别,所以请让我知道)
2)现在,当我在文本框中输入whateva,然后按下显示按钮,再次出现默认的占位符文本,输入不会出现在标签中。当然,我也不希望占位符文本出现在标签上。
显然我是Windows Forms的新手,更糟糕的是,在编写WinForms应用程序时,我发现很难清楚地表达我的问题。因此,如果我的问题中缺少任何代码,请告诉我。
答案 0 :(得分:2)
您只需要更改支票,如果用户进行了任何更改,那么您将不会重新显示占位符:
//Resets the placeholder text for password textbox
private void textBox2_Leave(object sender, EventArgs e)
{
if(!textBox2.Focused && textBox2.Text.Trim() == String.Empty)
textBox2.Text = "Password: ";
}
//Resets the placeholder text for password textbox
private void textBox1_Leave(object sender, EventArgs e)
{
if(!textBox1.Focused && textBox1.Text.Trim() == String.Empty)
textBox1.Text = "Name: ";
}
TextBox.Focus()是一种使文本框成为表单活动控件的方法。它还将 TextBox.Focused 属性设置为true。
答案 1 :(得分:1)
这看起来像是一个家庭作业问题,所以我不会给你你答案,但我会帮你提出一些建议。
label5
是什么。
nameLabel.Text = nameTextBox.Text;
然后你应该在那一行设置一个断点,调试你的应用程序并逐步完成,看看输出窗口看不正确的东西。