2017-09-16 13 views
-1

は今のところ、これは私が入る/休暇のために使用するプログラムです。他の場所でクリックするとテキストボックスを残す方法は?

private void tbFullName_Enter(object sender, EventArgs e) 
    { 
     if (tbFullName.Text == "Full name") 
     { 
      tbFullName.Text = ""; 
      tbFullName.ForeColor = Color.Black; 
     } 
    } 

    private void tbFullName_Leave(object sender, EventArgs e) 
    { 
     if (tbFullName.Text == "") 
     { 
      tbFullName.Text = "Full name"; 
      tbFullName.ForeColor = SystemColors.InactiveCaption; 
     } 
    } 

私は別の要素に焦点を当てたときに、それが唯一残します。私はバックグラウンドをクリックするか、どこか他の場所をクリックすると残したい。どうやってやるの?

+0

ところで、これは私が使用する透かしの例です。他の状況があるかもしれません。 – Qedized

+2

この機能はWindowsに組み込まれています。研究キューバナー – Plutonix

+0

あなたは、現在のフォームへの背景セットContainerControl.ActiveControlプロパティをクリックするときのように、コントロールフォーカスによって行うべきです。 – saeed

答えて

1

を使用することができます。しかし呼び出す前に、それは、テキストボックスを無効にし、コードの形態では

以下のようなテキストボックスを有効に呼び出した後

として最後にこの

private void TbFullName_LostFocus(object sender, EventArgs e) 
    { 
     if (tbFullName.Text == "") 
     { 
      tbFullName.Text = "Full name"; 
      tbFullName.ForeColor = SystemColors.InactiveCaption; 
     } 
    } 

    private void TbFullName_GotFocus(object sender, EventArgs e) 
    { 
     if (tbFullName.Text == "Full name") 
     { 
      tbFullName.Text = ""; 
      tbFullName.ForeColor = Color.Black; 
     } 
    } 

、フォームのClickイベントのようなイベント

public Form() 
    { 
     InitializeComponent(); 

     //attach the events here 
     tbFullName.GotFocus += TbFullName_GotFocus; 
     tbFullName.LostFocus += TbFullName_LostFocus; 
    } 

のTextBoxのイベントを初期化します

private void Form_Click(object sender, EventArgs e) 
    { 
     tbFullName.Enabled = false;  //disable the textbox 
     TbFullName_LostFocus(sender, e); //call lost focus event 
     tbFullName.Enabled = true;  //enable the textbox 
    } 

この回避策が役立ちます。

+0

本当に助けてくれました。あなたの時間をとってくれてありがとう! :) – Qedized

+0

あなたはこの質問を閉じるための答えとして受け入れることができます –

0

あなたはまた、代わりに入力して、TextBoxのイベントを残す、LostFocusイベントを呼び出すために、テキストボックスの使用フォームのClickイベントから残すために第二に、GotFocusLostFocusイベントを使用して使用してのこの

private void Form1_Click(object sender, EventArgs e) 
    { 
     //your code here 
    } 
+0

コードのみの回答は、問題の解決方法を説明していないため、お勧めできません。この質問に既に回答があった場合、これがどう改善されるか説明するために、あなたの答えを更新してください。 [良い答えを書くにはどうすればいいですか](https://stackoverflow.com/help/how-to-answer)をご覧ください。 – FluffyKitten

関連する問題