2017-09-16 10 views
-1

는 지금이 내가에 사용하는 프로그램입니다 떠나/입력 : I는 다른 요소에 초점을 맞출 때다른 곳에서 클릭 할 때 텍스트 상자를 떠나는 방법은 무엇입니까?

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에 내장되어 있습니다. Research Cue Banner – 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; 
    } 

텍스트 상자 이벤트를 초기화가 텍스트 상자를 해제 호출하기 전에 코드 아래와 같이 텍스트 상자를 사용 호출 한 후

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

당신은 또한 둘째 LostFocus 이벤트를 호출 할 텍스트 상자의 사용 양식의 Click 이벤트에서 출발하는 대신 입력하고 TextBox의 사건을두고 GotFocusLostFocus 이벤트를 사용하여 사용하는이

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

코드 전용 답변은 문제 해결 방법을 설명하지 않기 때문에 권장하지 않습니다. 이 질문에 이미 답변 한 내용이 어떻게 개선되는지 설명하기 위해 답변을 업데이트하십시오. [좋은 답변 작성 방법] (https://stackoverflow.com/help/how-to-answer)을 검토하십시오. – FluffyKitten