Hallo Peter,
Post by Peter FleischerThomas,
was ist daran störend, dass während der Suche in der ComboBox die gebundenen Controls der Navigation folgen? Wenn du das wirklich
trennen willst, warum nutzt du dann nicht einen separaten Button (was ich aber nicht machen würde).
wie bereits erwähnt werden mit dem Selektieren eines Items nicht nur zusätzliche Daten
im Form angezeigt. Es werden in Abhängigkeit von diesen Daten weitere Funktionen ausgeführt,
darunter das Auswerten eines Textes, das Neuladen einer weiteren ComboBox, das Vergleichen
der ursprünglich im Form angezeigten Daten mit einem Merkstring zwecks Warnung vor Datenverlust
beim Neuladen ohne Rückspeichern, usw...
All dies ist nur wirklich nützlich für das 'richtige' Item, daher will ich unnötige Ausführungen unterbinden.
Post by Peter FleischerIch meinte, dass nach Eingabe von ein paar Buchstaben bereits der gewünschte Eintrag gefunden werden kann, der nach deiner
Technologie nochmals zu bestätigen ist. Das ist aus meiner Sicht unnötig.
Der einzig passende Eintrag aus der DropDownList muss ohnehin irgendwie bestätigt werden.
Es ist ganz und gar üblich, dies per Enter oder Klick zu tun.
Wenn Du zu Start-> Alle Programme -> Microsoft SQL Server -> Enterprise Manager
gehst, dann gehst auch Du nicht davon aus, den Manager damit gestartet zu haben.
Post by Peter FleischerGebundene Controls in VB.NET sind nicht mehr so schwer handelbar wie in VB6. Es gibt aber trotzdem eine Reihe von Besonderheiten,
die sich mit ungebundenen Controls übersichtlicher und stabiler lösen lassen. Das betrifft z.B. komplexere Prüfungen erfasster
Daten. Das geht schon mit Längenprüfungen los.
Bei mir kommt zusätzlich hinzu, dass ich zur Beschleunigung der Eingabe zulasse,
'gleichzeitig' einen neuen Master-Satz (Kunde) und einen ersten Child-Satz(Anzeige)
zu speichern. Das mache ich per Code, indem ich den erzeugten PK gleich zum FK
des Childs mache.
Post by Peter FleischerGerade bei den Inserts und Updates hat AD.NET die Nase weit vorn. Dort dürfte es die wenigsten Probleme geben, wenn es darum geht,
DataAdapter, DataTables usw. zu nutzen.
Ich arbeite mich sachte ran, wenn nur nicht immer dieser Abgabe-Druck wäre :-(
Post by Peter FleischerBei wird da snur gefeuert, wenn ich mit der Tastatur durch die Liste navigiere. Beim Eintippen der Buchstaben wird nur der
passende Teil der Liste ohne Auslösen von 'SelectedIndexChanged' angezeigt.
Das gelingt mir nicht nachzuvollziehen, weder mit der 'normalen' ComboBox',
noch mit Deiner AutoCompleteComboBox.
Post by Peter FleischerDas klappt bei mir mit 'SelectedIndexChanged' genau wie mit 'AfterUpdate' in Access.
Aber bei mir nicht.
Hier ein Testform, das AutoCompleteCombo ist das von deiner FAQ-Seite.
=====================
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Vom Windows Form Designer generierter Code "
Public Sub New()
MyBase.New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
End Sub
' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' Für Windows Form-Designer erforderlich
Private components As System.ComponentModel.IContainer
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
'Sie kann mit dem Windows Form-Designer modifiziert werden.
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
Friend WithEvents ComboBox2 As AutoCompleteComboBox
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.ComboBox1 = New System.Windows.Forms.ComboBox
Me.ComboBox2 = New ComboTest.AutoCompleteComboBox
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.SuspendLayout()
'
'ComboBox1
'
Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.ComboBox1.Items.AddRange(New Object() {"AaaTest", "AabTest", "AbaTest", "AbbTest", "AbcTest", "BaaTest"})
Me.ComboBox1.Location = New System.Drawing.Point(40, 24)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(121, 21)
Me.ComboBox1.TabIndex = 0
'
'ComboBox2
'
Me.ComboBox2.Items.AddRange(New Object() {"AaaTest", "AabTest", "AbaTest", "AbbTest", "AbcTest", "BaaTest"})
Me.ComboBox2.Location = New System.Drawing.Point(40, 72)
Me.ComboBox2.Name = "ComboBox2"
Me.ComboBox2.Size = New System.Drawing.Size(121, 21)
Me.ComboBox2.Sorted = True
Me.ComboBox2.TabIndex = 0
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(240, 48)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.TabIndex = 1
Me.TextBox1.Text = ""
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(400, 350)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.ComboBox1)
Me.Controls.Add(Me.ComboBox2)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged
Me.TextBox1.Text = Me.ComboBox1.Items(Me.ComboBox1.SelectedIndex)
End Sub
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ComboBox2.SelectedIndexChanged
Me.TextBox1.Text = Me.ComboBox2.Items(Me.ComboBox2.SelectedIndex)
End Sub
End Class
==============
Grüße, Thomas