vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Zustand einer Checkbox in TabPage 
Autor: Theo_kkv
Datum: 21.12.16 09:26

Hallo,
ich habe nach langem Probieren herausgefunden, dass trotz des programmgesteuerten Setzens (checked=true/fals) die Checkbox erst diese Eigenschaft erhält, wenn man auf den entspr. Tab klickt. Das hat schon fast einen Quantentheoretischen Anstrich im Sinne "Ist der Mond auch da, wenn keiner hinsieht".
Ungünstig ist es nur in dem Fall, wenn der Anwender [u]nicht die Tabpage mit der Checkbox aufruft, dann hat sie unter Umständen einen falschen Zustand. Hat jemand einen Tipp, wie das gelöst werden kann?

Danke
Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: JangoF
Datum: 21.12.16 12:38

Kann ich nicht nachvollziehen.
Ich kann von Tab1 eine Checkbox auf Tab2 auf Checket false oder true setzen und eine Abfrage liefert dann auch das richtige Ergebnis ohne das Tab2 jemals zu sehen war.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Manfred X
Datum: 21.12.16 13:09

Das kann ich bestätigen.
Theo, versuche mal, ob Du diesen Effekt als Democode reproduzieren kannst.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Theo_kkv
Datum: 21.12.16 15:13

Hallo,
ich glaube, etwas Aufhellung in die Sache zu bringen. Ich hatte es nicht erwähnt -weil es mir nicht von Bedeutung erschien, aber es scheint doch die Ursache zu sein- , ich habe den Wert über Databinding an die Checkbox gebunden. Wahrscheinlich feuert die Databinding erst, wenn auch die Checkbox in den sichbaren Bereich kommt.
Was meint ihr dazu?

Grüße Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Franki
Datum: 22.12.16 01:24

Hallo Tom,

Das kannst du doch ganz einfach an einem Testprojekt kontrollieren. Aber ich bezweifle, dass ein Event ausgelöst wird wenn etwas sichtbar wird. Beschreibe doch mal mit Beispielcode wie du das auf den Tabs machst bzw. wie die gewechselt werden, wann Events auf den anderen (die unsichtbar für den User auftreten) usw. beandelt werden.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Manfred X
Datum: 22.12.16 06:41

Hallo!

Wie hast Du die Bindung organisiert?

Falls die Bindung durch eine Bindingsource erfolgt, stehen in dieser
Klasse Reset-Methoden zur Verfügung (z.B. ResetCurrentItem).
Nach einer Änderung der Datenquelle kann dadurch ein neues
Lesen und Anzeigen der gebundenen Daten angefordert werden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Theo_kkv
Datum: 22.12.16 09:49

Hallo,
ich habe die Bindung so realisiert.
Me.TextBox12.DataBindings.Add(New Binding("Text", loc_bs, "Strasse", False, _
  DataSourceUpdateMode.Never))
Ich habe ferner den Werte für die Strasse (aus einem Adressdatensatz z.B. "Dorfstraße") auf TabPage3 gesetzt und zur Laufzeit abgefragt. Tatsächlich ergab sich für die Textbox12 ein Leerwert.

Grüße
Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Manfred X
Datum: 22.12.16 10:20

Checkbox? Textbox? Worum geht es?

Hast Du eventuell irgendwo im Code die SuspendBinding-Methode
der Bindingsource aufgerufen und noch kein ResumeBinding gegeben?

Bist Du Dir übrigens im Klaren, was der Parameter-Wert
DatasourceUpdateMode.Never bewirkt?
(Änderungen des Control durch den Benutzer - z.B. Check-Zustand -
werden nicht automatisch in die Datenquelle übernommen.)

Beitrag wurde zuletzt am 22.12.16 um 10:26:52 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Theo_kkv
Datum: 22.12.16 11:25

sorry, ich wollte nicht noch mehr Verwirrung in das Thema bringen. Die Checkbox habe ich so eingebunden
Me.CheckBox2.DataBindings.Add(New Binding("CheckState", loc_primaer_bs, _
  "hat_bezahlt", True, DataSourceUpdateMode.Never))
Der vorherige Code mit der Textbox war nur ein Beispiel, weil es bei einer Textbox auch diesen Effekt gibt.
SuspendBinding/ResumeBinding werden nicht angewendet.
Die Auswirkungen von DatasourceUpdateMode.Never sind mir bekannt. Ich fand es problematisch, wenn der Anwender zwar irgendwelche Einträge geändert hat (die dann gleich in der Datatable landeten), sich jedoch später mit "Schliessen" aus dem Dialog ohne Speicherung verabschieden wollte.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Manfred X
Datum: 22.12.16 13:34

Ich kann Dein Problem nicht nachvollziehen.

Bei mir wird der per Programm geänderte Wert (Button) in die
Quelle (Datatable) eingetragen, unabhängig davon,
welche "TabPage" gerade aktiv ist.

Public Class frmcboBinding
 
    Dim cbo As New CheckBox
    Dim dt As New DataTable
    Dim bs As New BindingSource
 
    Dim WithEvents btnModify As New Button With _
        {.Parent = Me, .Text = "Modify"}
 
    Dim tc As New TabControl With {.Parent = Me}
 
 
 
    Private Sub frmcboBinding_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        'Testdaten
        dt.Columns.Add("Bool", GetType(Boolean))
        dt.Rows.Add(True)
        dt.Rows.Add(False)
 
        'Datenbindung
        bs.DataSource = dt
        cbo.DataBindings.Add _
           ("Checkstate", bs, "Bool", True, DataSourceUpdateMode.Never)
 
        'Tabcontrol einrichten
        tc.Size = New Size(200, 200)
        tc.Top = 50
        With tc
            .TabPages.Add(New TabPage("Null"))
            .TabPages.Add(New TabPage("Bool"))
            .TabPages(0).Location = New Point(5, 5)
            cbo.Parent = tc.TabPages(1)
        End With
 
    End Sub
 
 
    Private Sub btnModify_Click(sender As Object, _
        e As System.EventArgs) Handles btnModify.Click
 
        'Wert ändern
        Dim value As Boolean = True
        If dt.Rows(0)(0).Equals(True) Then value = False
        dt.Rows(0)(0) = value
 
        'Ist der Wert in die Quelle eingetragen ????
        If Not dt.Rows(0)(0).Equals(value) Then Stop
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zustand einer Checkbox in TabPage 
Autor: Theo_kkv
Datum: 25.12.16 17:59

Na ja, so richtig weiss ich nicht, woran es hapert. Ich habe mich zwischenzeitlich von Databinding verabschiedet und alles über ein normales Objekt verknüpft. Geht auch gut. Ich schlage vor, das Thema mt offenem Ende zu schließen.

Vielen Dank an alle, die mitgeholfen haben.

Grüße Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel