Announcement

Collapse
No announcement yet.

Textfeldaktualisierung nur mit Umweg

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textfeldaktualisierung nur mit Umweg

    Hallo Leute,
    ich find's komisch, hab bisher auch keine Erklärung gefunden.
    Und zwar hab ich in einer Form zwei Textfelder ("Anfragenfeld" und "pollfeld"). Wird der Startbutton gedrückt soll in beiden Feldern jeweils "bitte warten" stehen. (unten dazu der Code)
    Das kuriose ist: die Felder werden nicht mit dem Text versehen.
    ganz kurios: Lass ich die auskommentierte MessageBox anzeigen, werden die Felder wie gewünscht gefüllt.
    Kann mir jemand ein Tipp geben, wie ich ohne MessageBox das gewünschte Ergebnis erziele?

    Gruß
    Sebastian


  • #2
    Hallo,

    Refresh() oder Invalidate() können helfen. Unter Umständen ist auch Application.DoEvents() hilfreich; aber das kann gefährliche Nebenwirkungen haben und ist deshalb zu vermeiden.

    Erklärung: Wenn Windows keinen Grund hat, ein Formular neu zu zeichnen, macht es das auch nicht. Durch die MessageBox wird das Neu-Zeichnen angefordert; in anderen Fällen wird die Hintergrundarbeit als wichtiger angesehen.

    Gruß Jürgen

    Comment


    • #3
      Hallo,

      Du koenntest die Textfelder auch mittels Delegates befuellen. Der Code dafuer koennte dann in etwa so auschauen:

      Code:
      private void button1_Click(object sender, EventArgs e)
      {
      Invoke(new DelegateTextBox(SetTextboxText), "bitte warten ...", textBox1);
      Invoke(new DelegateTextBox(SetTextboxText), "immer noch warten ...", textBox2);
       
      Thread.Sleep(5000);
      // do something
       
      Invoke(new DelegateTextBox(SetTextboxText), string.Empty, textBox1);
      Invoke(new DelegateTextBox(SetTextboxText), string.Empty, textBox2);
      }
       
      private delegate voidDelegateTextBox(string text, TextBox txtbox);
       
      private void SetTextboxText(string text, TextBox txtbox)
      {
      txtbox.Text = text;
      txtbox.Refresh();
      }
      Hoffe das hilft dir weiter
      *-- robert.oh. --*

      Comment


      • #4
        Hallo ihr beiden,
        vielen vielen Dank für die Erklärung und die Lösungsmöglichkeiten :-)
        funktioniert jetzt super.

        Gruß
        Sebastian

        Comment

        Working...
        X