Announcement

Collapse
No announcement yet.

Forms.load - Wertezuweisung

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

  • Forms.load - Wertezuweisung

    Hallo alle miteinander,

    Ich rufe meine Form entweder zur Neuerstellung oder zur Bearbeitung eines Datensatzes auf.

    Im Fall 1 - führe ich ganz normal eine Fill - Anweisung aus und alles ist gut.
    Im 2. Fall:
    Im load-Ereignis der Form rufe ich die Generierung einer ID auf
    Code:
    If state_open = "new" Then
                new_ds()
            Else '"work" ...
    
    .
    .
    
        Private Function new_ds() As Boolean
            Me.table_bs.AddNew()
            'neue Sqquence ziehen
            
            Dim id As Long ' id aus def. Sequence ermitteln
            id = globfunction.get_squence("ID_pruefAnweisung")
            Me.Id_pa.Text = id
            
        End Function
    Im Debug-Modus kann ich nachvollziehen, dass meine ID sauber generiert wird. Allerdings scheint die Zuweisung zu meiner Textbox fehlzuschlagen.
    Rufe ich die gleiche Funktion aus dem Menü meiner 'geladenen' Form auf, klappt alles korrekt.

    Kann ich im Load-Ereignis der Textbox keinen Wert zuweisen? Wo und wann dann?

    Mit der Bitte um Hilfe. Vielen Dank

  • #2
    Also, ich habe jetz meine function new_ds im Shown - Ereignis aufgerufen. Da geht es. Zieht dieses Ereignis (Shown) wirklich nur bei der ersten Anzeige oder auch bei dem neuen Erhalt des Focus?

    Comment


    • #3
      Hallo,

      guckst du in die MSDN findest du die Antwort:
      The Shown event is only raised the first time a form is displayed; subsequently minimizing, maximizing, restoring, hiding, showing, or invalidating and repainting will not raise this event.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Autsch, ja Doku lesen. Das ist ok. Aber warum zieht beim Load-Ereignis die Wertezuweisung nicht?

        Comment


        • #5
          Hallo,

          schau dir das am besten mit dem Debugger an -> Breakpoint setzen und schaue was passiert.


          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment


          • #6
            Nun das hatte ich ja gemacht. Dabei wird brav alles abgearbeitet (id gezogen, zeile mit Wertzuweisung abgearbeitet..). Aber schaust Du Dir dann die geladene Form an, ist die Textbox leer. Das kann ich mir eben nicht so recht erklären.

            Comment


            • #7
              In der Frage wird vom Event-Ereignis gesprochen, vermutlich wird in der Form nachstehendes Konstrukt verwendet:

              [highlight=vbnet] Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
              Dim id As Long ' id aus def. Sequence ermitteln
              id = globfunction.get_squence("ID_pruefAnweisung")
              Me.Id_pa.Text = id
              End Sub[/highlight]

              Das Problem ist die Datenbindung: an dieser Stelle wird die TextBox.Text-Eigenschaft gesetzt, bevor die Datenbindung erstmalig die Daten von der Datenquelle in die TextBox übertragen hat. Folge: es werden die Daten der Datenquelle angezeigt, die leer sind.
              Entweder müssen in Form1_Load() die Daten der Datenquelle gesetzt werden oder der Inhalt der TextBox erst dann gesetzt werden, wenn die Datenbindung schon die Daten übertragen hat (das ist auch der Grund, weswegen es im Shown-Event funktioniert). Bezüglich des Load-Ereignisses kann das erreicht werden, wenn OnLoad() überschrieben wird:

              [highlight=vbnet] Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
              MyBase.OnLoad(e)
              Dim id As Long ' id aus def. Sequence ermitteln
              id = globfunction.get_squence("ID_pruefAnweisung")
              Me.Id_pa.Text = id
              End Sub[/highlight]

              Comment

              Working...
              X