문제

내가 노력하는 바인딩 Textbox.Text 하기 Form.Text (설정하는 제목의 형식).딩 자체 작동합니다.그러나 제목이 없 업데이트될 때까지 이동 전체 형태이다.

어떻게 수행할 수 있습니까 Form.Text 업데이트되고 있는 움직이지 않고 형성하는가?고 싶 Form.Text 업데이트되고 직접 때 나는 뭔가를 입력하 Textbox.

편집;나는 설정의 제목에서 양식 TextChanged 이벤트에 의해 해 ToolStripTextbox:

public partial class ProjectForm : Form
{
   public ProjectForm()
   {
       // my code contains all sorts of code here, 
       // but nothing that has something to do with the text.
   }
}

private void projectName_TextChanged_1(object sender, EventArgs e)
{
    this.Text = projectName.TextBox.Text;
}

과 데이터 바인딩 버전:

public partial class ProjectForm : Form
{
   public ProjectForm()
   {
       this.projectName.TextBox.DataBindings.Add("Text", this, "Text", true, DataSourceUpdateMode.OnValidation);
   }
}

Edit2:나는 나는 언급하는 것을 잊었 무언가이다.알지 못하는 경우가 아무것도 하지만 내 응용 프로그램은 MDI 응용 프로그램입니다.의 일부 제목 변경 내용:

ApplicationName [THIS CHANGES, BUT ONLY AFTER MOVING/RESIZING]
도움이 되었습니까?

해결책

고전적인 문제는,당신은 당신 업데이트하지 않는 기존 형태의 텍스트를 제공하지만 새로운 중 하나는 보이지 않습니다.전화 Show()메소드를 변경한 후에 텍스트입니다.

수도 있습을 무효화하의 형태에 TextChanged 이벤트 것입니다 그래서 강제 재 페인트입니다.

편집 1:직접 질문 을 제공할 수 있습니다 당신을 위해 대답기 때문에 당신은 MDI 응용 프로그램

Edit2: 그것은 될 수 있는 이 작업은 스레드에 안전하고 따라서 UI 스레드가 있습니다.따라서 필요하신 invoke 다른 기능을 위해 그것을 일으키는 원인이 되기 위하여 업데이트하고 있습니다.나와 유사한 문제에 상태 표시 상표입니다.여기에 몇 가지 예를 들어 코드하지 않는 경우는 방법을 알리자를 사용:

public delegate void updateFormTextD(string text);

private void formText(string text)
{
     this.Text = text;
}

private void updateFormText(string text)
{
     Invoke(new updateFormTextD(formText), text);
}

다른 팁

텍스트 상자의 텍스트 변경 이벤트를 사용하는 것은 어떻습니까 :

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        this.Text = this.textBox1.Text;
    }
}

나는 거의 나를 놀라게하는 것과 같은 문제가 있었다. 결국 나는 "this.text ="에 의한 내 양식 제목 업데이트 요청이 "wndproc (ref message message)"메소드에 의해 차단 된 것을 발견했습니다. WNDPROC 메소드가 끝나면 "base.wndproc (ref message)"을 추가하여 모든 메시지를 기반으로 전달합니다. 그 후 나는 "this.text ="로 내 양식 제목을 성공적으로 업데이트 할 수 있습니다.

따라서 업데이트를 위해 양식 제목을 차단하는 메소드를 찾는 것이 좋습니다.

전통적인 아이템 중 어느 것도 작동하지 않았습니다 (무효 및 새로 고침). 또한 메시지가 차단되었을 수있는 곳을 쉽게 결정할 수 없었습니다. 그러나 실을자는 것이 이것을 처리했습니다.

fForm1->Text = Title;

Thread::Sleep(0); //Allow release for title to update
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top