在用户单击控件和/或将自己的文本写入字段之前,重新创建文本框显示特定字符串(斜体和不同字体)的效果的最简单方法是什么?例如,查看 SO 右上角的“搜索”框。
我尝试过使用 Paint 事件:
private void textEdit1_Paint(object sender, PaintEventArgs e)
{
if (textEdit1.Text.Length == 0 && !textEdit1.Focused)
{
textEdit1.Font = new Font(textEdit1.Font, FontStyle.Italic);
textEdit1.Text = "123";
}
else
{
textEdit1.Font = new Font(textEdit1.Font, FontStyle.Regular);
textEdit1.Text = string.Empty;
}
}
但是,这是行不通的。默认情况下,它不显示任何文本,如果我单击它,我似乎会无限循环将文本设置为“123”和 string.empty,直到我给出另一个控制焦点。
那么,这种方法是不是最好的,如果是,那么正确的第二个条件是什么,而不是 .Focused?