0

テキストフィールドを持つWindowsフォームがあります。テキストボックスにサンプルテキストが表示され、テキストボックスをクリックするとテキストがクリアされるようにしたいと思います。これを行う最善の方法は何ですか?

たとえば、フォームに 192.18.130.44 というテキストが表示されている場合、ユーザーがそのテキスト ボックスをクリックすると、テキストがクリアされます。

4

4 に答える 4

2

Enterイベントを使用します。

private void textBox_Enter(Object sender, EventArgs e)
{
    textBox.Text = null;
}

ただし、常にクリアしたくない場合を除き、そこにもいくつかの検証を入れます!

ところで...CueProviderサードパーティのものを気にしないのであれば、そのリンクもかなり滑らかに見えます。

于 2013-06-21T14:29:29.877 に答える
2

テキストボックスのデフォルトを表示したいと思います。Text編集せずにフォーカスしただけの場合、次のTextようにフォーカスを失うとデフォルトが復元されます。

string initText = "Love .NET";
bool edited;
//This code line is just for demonstrative purpose, it should be placed such as in the Form constructor
textBox1.Text = initText;
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    edited = !char.IsControl(e.KeyChar);
}

private void textBox1_Enter(object sender, EventArgs e)
{
    if(!edited) textBox1.Clear();
}

private void textBox1_Leave(object sender, EventArgs e)
{
    if (!edited) textBox1.Text = initText;
}

テキストを のように見せたい場合は、必要に応じて、さらにそれに応じて、またはカスタム ペイントwatermarkを適用することをお勧めします。最後はサードパーティのテキストボックスを使用しています。それはあなた次第です。FontForeColor

于 2013-06-21T14:43:19.007 に答える
1

サンプル テキストを表示するには、プロパティ メニューのテキスト プロパティを必要な値に設定します (例: 192.18.120.44)。

クリック時に明確にするために、クリック イベントのメソッドを作成し、txtbox1.Text = ""; を実行します。このメソッドを開始するには、テキスト ボックスをダブルクリックします。

于 2013-06-21T14:29:12.393 に答える
0

winform をロードするときに、テキスト ボックスが null または空であるかどうかを確認します。

次に、そうであれば、サンプル テキストを表示し、ブール値を true (テキストが空でない場合は false) に設定します。

次に、テキストボックスにクリックイベントを書き込みます。ブール値がtrueの場合はコンテンツをクリアし、ブール値がfalseの場合は何もクリアせず、サンプルに他のものが含まれている場合はテキストボックスをクリアしないようにします..

于 2013-06-21T14:30:59.097 に答える