ユーザーがコントロールをクリックするか、フィールドに独自のテキストを書き込むまで、テキストボックスに特定の文字列(斜体と異なるフォント)が表示される効果を再現する最も簡単な方法は何ですか?例として、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の代わりに正しい2番目の条件は何ですか?