Benutzer mit den meisten Antworten
zahl soll in ihre ziffern geteilt werden

Frage
-
hey ho
ich möchte ein kleines programm mit vb 2010 schreiben, welches den benutzer erlaubt eine zahl in ein textbox-feld einzugeben diese zahl kann bis zu 4 ziffern besitzen
wenn es weniger ziffern sind werden vor die zahl die entsprechende anzahl nullen gesetzt
If TextBox1.Text.Length = (4) Then
TextBox2.Text = TextBox1.Text
ElseIf TextBox1.Text.Length = (3) Then
TextBox2.Text = 0 & TextBox1.Text
ElseIf TextBox1.Text.Length = (2) Then
TextBox2.Text = 00 & TextBox1.Text
ElseIf TextBox1.Text.Length = (1) Then
TextBox2.Text = 000 & TextBox1.Text
End Ifz.B. 71 wird zu 0071
nun zu meinem problem:
jetzt möchte ich diese zahl wieder zerlegen
jede ziffer soll in ein label geschrieben werden
Beispiel:
Textbox1.Text = 4271
ziffer 4 kommt in label1
ziffer 2 in label2
usw.
hoffe ihr versteht es
ralle
Antworten
-
Hallo,
ich möchte ein kleines programm mit vb 2010 schreiben,
welches den benutzer erlaubt eine zahl in ein textbox-feld
einzugeben diese zahl kann bis zu 4 ziffern besitzenAlso sollte die Textbox eine Eingabe von max. 4 Zeichen zulassen:
TextBox1.MaxLength = 4
wenn es weniger ziffern sind werden vor die zahl
die entsprechende anzahl nullen gesetztDa man in die Textbox nicht nur Ziffern, sondern auch
andere Zeichen eingeben kann, wäre es sinnvoll, erst
mal zu prüfen, ob in die Textbox wirklich nur Ziffern
eingegeben worden sind.Dim Value as Integer
If Integer.TryParse(TextBox1.Text, Value) Then
' TextBox1 enthält eine gültige Zahl (integer)
end ifIf TextBox1.Text.Length = (4) Then
TextBox2.Text = TextBox1.Text
ElseIf TextBox1.Text.Length = (3) Then
TextBox2.Text = 0 & TextBox1.Text
ElseIf TextBox1.Text.Length = (2) Then
TextBox2.Text = 00 & TextBox1.Text
ElseIf TextBox1.Text.Length = (1) Then
TextBox2.Text = 000 & TextBox1.Text
End If
z.B. 71 wird zu 0071Das kannst Du auch deutlich einfacher haben.
MitTextBox1.Text = TextBox1.Text.PadLeft(4, "0"c)
wird die in TextBox1 stehende Zahl mit führenden
Nullen auf 4 stellen aufgefüllt.
nun zu meinem problem:
jetzt möchte ich diese zahl wieder zerlegen
jede ziffer soll in ein label geschrieben werden
Beispiel:
Textbox1.Text = 4271
ziffer 4 kommt in label1
ziffer 2 in label2
usw.Kopiere nachfolgendes Beispiel in ein leeres Formmodul (Form1.vb)
' / Beginn Code Form1.vb
Public Class Form1
Private WithEvents Button1 As Button
Private WithEvents TextBox1 As TextBoxPrivate Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.LoadCreateControls()
Button1.Enabled = False
End SubPrivate Sub CreateControls()
' Textbox, Button u. 4 Labels erzeugenTextBox1 = New TextBox
With TextBox1
.Name = "TextBox1"
.Font = New Font("Arial", 14)
.MaxLength = 4.SetBounds _
(10, 10, _
Me.ClientSize.Width - 65, _
.Height).Anchor = _
AnchorStyles.Left Or _
AnchorStyles.Top Or _
AnchorStyles.RightEnd With
Me.Controls.Add(TextBox1)Button1 = New Button
With Button1
.Name = "Button1"
.Font = New Font("Arial", 10).SetBounds _
(Me.ClientSize.Width - 50, _
10, 40, _
TextBox1.Height).Text = "ok"
.Anchor = _
AnchorStyles.Top Or _
AnchorStyles.RightEnd With
Me.Controls.Add(Button1)Dim i As Integer
Dim Top As Integer = TextBox1.Bottom + 20
Dim Lbl As Label = Nothing
For i = 1 To 4
Lbl = New Label
With Lbl
.Name = "Label" & i.ToString
.Font = TextBox1.Font
.AutoSize = True
.Location = New Point(10, Top)
.Text = .NameTop = .Bottom + 10
End With
Me.Controls.Add(Lbl)
NextMe.ClientSize = New Size(350, Lbl.Bottom + 15)
End SubPrivate Sub TextBox1_TextChanged _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles TextBox1.TextChanged' Button1 nur dann freigeben, wenn Textbox1.Text
' ein gültige Zahl (Integer) darstellt.Dim Value As Integer
Button1.Enabled = _
Integer.TryParse(TextBox1.Text, Value)End Sub
Private Sub Button1_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles Button1.Click' Textbox mit führenden Nullen auf 4 Stellen auffüllen
TextBox1.Text = TextBox1.Text.PadLeft(4, "0"c)' Ziffer aus der Textbox in den Labels anzeigen
Dim i As Integer
For i = 1 To 4Me.Controls("Label" & i.ToString).Text = _
TextBox1.Text.Substring(i - 1, 1)Next
End Sub
End Class
' \\\ E N T ENach dem Programmstart siehst Du die Form1 mit
einer Textbox einem Button (ok) und 4 Labels.Der Button wird erst freigegeben, wenn in die Textbox
eine gültige Zahl (integer) eingegeben worden ist.Mit einem Mausklick auf den Button (ok) wird die in der
Textbox stehende Zahl mit führenden Nullen auf 4 Stellen
aufgefüllt und dann werden die 4 Ziffern in den 4 Labels
angezeigt.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)- Als Antwort markiert Robert Breitenhofer Donnerstag, 16. September 2010 16:02
-
Hallo,
so einiges von Peter Götz Erläuterungen sollte hängen geblieben sein oder das Buch Aufklärung gebracht haben.
Und das wäre vor allem: Zunächst solltest sicherstellen, dass es überhaupt eine Zahl ist.
Danach kannst Du die Zahlenformate von .NET zur Darstellung nutzen:Dim value As Integer If Integer.TryParse(Me.TextBox1.Text, value) Then Me.TextBox1.Text = value.ToString("0000").Substring(0, 4) Else Me.TextBox1.Text = "Eine Zahl bitte!" End If
Ist es Dir "schnuppe", ob alles Ziffern sind geht auch:
' Oder auf 4 Zeichen Me.TextBox1.Text = Me.TextBox1.Text.PadLeft(4, "0"c).Substring(0, 4)
dort wird PadLeft verwendet und Substring beseitigt alles was über die 4 Zeichen hinausgeht.
Gruß Elmar
- Als Antwort vorgeschlagen Robert Breitenhofer Donnerstag, 16. September 2010 15:20
- Als Antwort markiert Robert Breitenhofer Donnerstag, 16. September 2010 16:02
Alle Antworten
-
ich kenn mich in VB ned aus aber ich würd, den sting in ne int convertieren und dann:
ziffer = zahl /10;
zahl = zahl % 10;
und dass dann in ne schleife packen die solange durch läuft wie zahl >= 10 ist, dadurch kommst an die einzelnene stellen.
Hoffe das hilft
grüße Michael
-
Hallo,
so einiges von Peter Götz Erläuterungen sollte hängen geblieben sein oder das Buch Aufklärung gebracht haben.
Und das wäre vor allem: Zunächst solltest sicherstellen, dass es überhaupt eine Zahl ist.
Danach kannst Du die Zahlenformate von .NET zur Darstellung nutzen:Dim value As Integer If Integer.TryParse(Me.TextBox1.Text, value) Then Me.TextBox1.Text = value.ToString("0000").Substring(0, 4) Else Me.TextBox1.Text = "Eine Zahl bitte!" End If
Ist es Dir "schnuppe", ob alles Ziffern sind geht auch:
' Oder auf 4 Zeichen Me.TextBox1.Text = Me.TextBox1.Text.PadLeft(4, "0"c).Substring(0, 4)
dort wird PadLeft verwendet und Substring beseitigt alles was über die 4 Zeichen hinausgeht.
Gruß Elmar
- Als Antwort vorgeschlagen Robert Breitenhofer Donnerstag, 16. September 2010 15:20
- Als Antwort markiert Robert Breitenhofer Donnerstag, 16. September 2010 16:02
-
Hallo,
ich möchte ein kleines programm mit vb 2010 schreiben,
welches den benutzer erlaubt eine zahl in ein textbox-feld
einzugeben diese zahl kann bis zu 4 ziffern besitzenAlso sollte die Textbox eine Eingabe von max. 4 Zeichen zulassen:
TextBox1.MaxLength = 4
wenn es weniger ziffern sind werden vor die zahl
die entsprechende anzahl nullen gesetztDa man in die Textbox nicht nur Ziffern, sondern auch
andere Zeichen eingeben kann, wäre es sinnvoll, erst
mal zu prüfen, ob in die Textbox wirklich nur Ziffern
eingegeben worden sind.Dim Value as Integer
If Integer.TryParse(TextBox1.Text, Value) Then
' TextBox1 enthält eine gültige Zahl (integer)
end ifIf TextBox1.Text.Length = (4) Then
TextBox2.Text = TextBox1.Text
ElseIf TextBox1.Text.Length = (3) Then
TextBox2.Text = 0 & TextBox1.Text
ElseIf TextBox1.Text.Length = (2) Then
TextBox2.Text = 00 & TextBox1.Text
ElseIf TextBox1.Text.Length = (1) Then
TextBox2.Text = 000 & TextBox1.Text
End If
z.B. 71 wird zu 0071Das kannst Du auch deutlich einfacher haben.
MitTextBox1.Text = TextBox1.Text.PadLeft(4, "0"c)
wird die in TextBox1 stehende Zahl mit führenden
Nullen auf 4 stellen aufgefüllt.
nun zu meinem problem:
jetzt möchte ich diese zahl wieder zerlegen
jede ziffer soll in ein label geschrieben werden
Beispiel:
Textbox1.Text = 4271
ziffer 4 kommt in label1
ziffer 2 in label2
usw.Kopiere nachfolgendes Beispiel in ein leeres Formmodul (Form1.vb)
' / Beginn Code Form1.vb
Public Class Form1
Private WithEvents Button1 As Button
Private WithEvents TextBox1 As TextBoxPrivate Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.LoadCreateControls()
Button1.Enabled = False
End SubPrivate Sub CreateControls()
' Textbox, Button u. 4 Labels erzeugenTextBox1 = New TextBox
With TextBox1
.Name = "TextBox1"
.Font = New Font("Arial", 14)
.MaxLength = 4.SetBounds _
(10, 10, _
Me.ClientSize.Width - 65, _
.Height).Anchor = _
AnchorStyles.Left Or _
AnchorStyles.Top Or _
AnchorStyles.RightEnd With
Me.Controls.Add(TextBox1)Button1 = New Button
With Button1
.Name = "Button1"
.Font = New Font("Arial", 10).SetBounds _
(Me.ClientSize.Width - 50, _
10, 40, _
TextBox1.Height).Text = "ok"
.Anchor = _
AnchorStyles.Top Or _
AnchorStyles.RightEnd With
Me.Controls.Add(Button1)Dim i As Integer
Dim Top As Integer = TextBox1.Bottom + 20
Dim Lbl As Label = Nothing
For i = 1 To 4
Lbl = New Label
With Lbl
.Name = "Label" & i.ToString
.Font = TextBox1.Font
.AutoSize = True
.Location = New Point(10, Top)
.Text = .NameTop = .Bottom + 10
End With
Me.Controls.Add(Lbl)
NextMe.ClientSize = New Size(350, Lbl.Bottom + 15)
End SubPrivate Sub TextBox1_TextChanged _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles TextBox1.TextChanged' Button1 nur dann freigeben, wenn Textbox1.Text
' ein gültige Zahl (Integer) darstellt.Dim Value As Integer
Button1.Enabled = _
Integer.TryParse(TextBox1.Text, Value)End Sub
Private Sub Button1_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles Button1.Click' Textbox mit führenden Nullen auf 4 Stellen auffüllen
TextBox1.Text = TextBox1.Text.PadLeft(4, "0"c)' Ziffer aus der Textbox in den Labels anzeigen
Dim i As Integer
For i = 1 To 4Me.Controls("Label" & i.ToString).Text = _
TextBox1.Text.Substring(i - 1, 1)Next
End Sub
End Class
' \\\ E N T ENach dem Programmstart siehst Du die Form1 mit
einer Textbox einem Button (ok) und 4 Labels.Der Button wird erst freigegeben, wenn in die Textbox
eine gültige Zahl (integer) eingegeben worden ist.Mit einem Mausklick auf den Button (ok) wird die in der
Textbox stehende Zahl mit führenden Nullen auf 4 Stellen
aufgefüllt und dann werden die 4 Ziffern in den 4 Labels
angezeigt.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)- Als Antwort markiert Robert Breitenhofer Donnerstag, 16. September 2010 16:02
-
ok gut danke
also setzt ich dort nen tryparse rein
mir ist auch eben noch eine andere lösung eingefallen (...)
beispiel:
die zahl 467 wirrd eingebenben
es zählt die zeichen
wenn es 3 zeichen sind wird durch 100 dividiert
also wäre das ergebniss 4.67
dann wäre z.B. Label2.text = 4.67
da ich nur eine ganze zahl möchte setzte ich noch ein int davor
also label2.text = Int(label2.Text)
jetzt habe ich die zahl 4
die zahl 4 wird in das label10 kopiert
jetzt füge ich noch 2 nullen hinzu und erhalte 400
jetzt subtrahiere ich von 467 die zahl 400 und erhalte 67
...
die ganze zahl ist 6
sie wird in das label11 kopiert
die zahl 7 bleibt üprig
diese wird wiederum in das label 12 kopiert
dazu brauch ich dann
TextBox1.Text = TextBox1.Text.PadLeft(4, "0"c)
nicht
aber jetzt weiß ich mehr
ralle
-
Hallo,
also setzt ich dort nen tryparse rein
Damit weisst Du erst mal, ob wirklich eine Zahl
eingegeben worden ist.mir ist auch eben noch eine andere lösung eingefallen (...)
beispiel:
die zahl 467 wirrd eingebenben
es zählt die zeichen
wenn es 3 zeichen sind wird durch 100 dividiert
also wäre das ergebniss 4.67
dann wäre z.B. Label2.text = 4.67
da ich nur eine ganze zahl möchte setzte ich noch ein int davor
also label2.text = Int(label2.Text)
jetzt habe ich die zahl 4
die zahl 4 wird in das label10 kopiert
jetzt füge ich noch 2 nullen hinzu und erhalte 400
jetzt subtrahiere ich von 467 die zahl 400 und erhalte 67
...
die ganze zahl ist 6
sie wird in das label11 kopiert
die zahl 7 bleibt üprig
diese wird wiederum in das label 12 kopiertAu weia,
... von hinten durch die Brust ins Auge.
Oder... warum einfach wenn es umständlich auch geht.dazu brauch ich dann
TextBox1.Text = TextBox1.Text.PadLeft(4, "0"c)
nichtDu willst doch nicht ernsthaft einen ganzen Roman
an wackligem Code schreiben, wenn sich das Ganze
mit einer einzigen, sauberen und stabil arbeitenden
Codezeile lösen lässt.
aber jetzt weiß ich mehrIch fürchte, Du hast mein vorangegangenes Posting
nicht wirklich gelesen, resp. den dort gezeigten Code
nicht ausprobiert oder zumindest nicht wirklich verstanden.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
Hallo,
ich habe ihn kurz überflogen
... damit wirst Du den Code sicher nicht verstehen.
hab meinen teil gepostet und bin grad dabei deinen
code umzusetztenDu solltest den Code besser erst mal unverändert
in ein leeres Formmodul kopieren und ablaufen lassen
und dabei Schritt für Schritt ansehen und dabei hoffentlich
auch verstehen was dieser Code warum macht.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
nochmal kurz was:
ich habe einen
button
Listbox
Textbox
ich möchte das jedes element aus der listbox in die textbox übertragen wird wenn der button gedrückt wurde
doch wenn ich den button gedrückt habe bleibt die textbox leer :-(
mein ansatz ist glaub nicht wirklich was
For Each item As String In ListBox1.Items
TextBox1.Text = item & vbCrLf
Nextralle
-
Hallo,
nochmal kurz was
ich habe einen
button
Listbox
Textbox
ich möchte das jedes element aus der listbox in die
textbox übertragen wird wenn der button gedrückt wurde
doch wenn ich den button gedrückt habe bleibt die textbox leer :-(
mein ansatz ist glaub nicht wirklich was
For Each item As String In ListBox1.Items
TextBox1.Text = item & vbCrLf
NextDas würde schon passen, wenn ListBox1.Items tatsächlich
Strings enthält. Es könnte aber auch sein, dass ListBox1.Items
keine Strings sondern Objekte enthält. Das wäre dann der Fall,
wenn Listbox1.DataSource = DataTable oder eine andere
Auflistung von Objekten wäre.Hier ein Beispiel, welches beide Varianten zeigt.
Kopiere den Code in ein leeres Formmodul Form1.vb.' / Beginn Code Form1.vb
Public Class Form1
Private WithEvents ListBox1 As ListBox
Private WithEvents Button1 As Button
Private mSwitch As BooleanPrivate Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.LoadListBox1 = New ListBox
With ListBox1
.Name = "ListBox1".SetBounds _
(10, 10, _
Me.ClientSize.Width - 20, _
Me.ClientSize.Height - 60).Anchor = _
AnchorStyles.Left Or _
AnchorStyles.Top Or _
AnchorStyles.Right Or _
AnchorStyles.Bottom.Font = New Font("Arial", 12)
End With
Me.Controls.Add(ListBox1)Button1 = New Button
With Button1
.Name = "Button1".SetBounds _
(10, ListBox1.Bottom + 10, _
150, 35).Anchor = _
AnchorStyles.Left Or _
AnchorStyles.Bottom.Text = "Show List Items"
.Font = New Font("Arial", 10)
End With
Me.Controls.Add(Button1)FillLlistBox()
End SubPrivate Sub Button1_Click _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles Button1.ClickDim NL As String = ControlChars.CrLf
Dim Buffer As StringIf mSwitch Then
Buffer = "ListBox.DataSource: DataTable" & NL
' Listbox1.Items enthält DataRowViews
Dim Item As DataRowView
For Each Item In ListBox1.Items
Buffer &= _
NL & Item(0).ToString & _
" " & Item(1).ToString
NextElse
Buffer = "ListBox.Items: String" & NL
' ListBox1.Items enthält Strings
Dim Item As String
For Each Item In ListBox1.Items
Buffer &= NL
Buffer &= Item
Next
End IfMsgBox(Buffer, MsgBoxStyle.Information)
mSwitch = Not mSwitch
FillLlistBox()
End SubPrivate Sub FillLlistBox()
If ListBox1.DataSource Is Nothing Then
ListBox1.Items.Clear()
Else
ListBox1.DataSource = Nothing
End IfDim i As Integer
If mSwitch Then
' ListBox1 via ListBox1.DataSource = DT
' an DataTable binden.Dim DT As New DataTable
Dim DR As DataRow
With DT
.Columns.Add("ID", GetType(Integer))
.Columns.Add("Text", GetType(String))
For i = 1 To 12
DR = .NewRow
DR.Item(0) = i
DR.Item(1) = MonthName(i, False)
.Rows.Add(DR)
Next
.AcceptChanges()
End With
ListBox1.DisplayMember = "Text"
ListBox1.DataSource = DT
Me.Text = "ListBox1.DataSource: DataTable"Else
' ListBox1.Items mit Strings füllenFor i = 1 To 12
ListBox1.Items.Add(MonthName(i, False))
Next
ListBox1.SelectedIndex = 0
Me.Text = "ListBox1.Items: String"End If
End Sub
End Class
' \\\ E N T ENach dem Programmstart siehst Du die Form1 mit
einer Listbox und einem Button "Show ListBox Items".Mit jedem Klick auf den Button siehst Du mal den
Inhalt von ListBox1.Items als Strings und mal als
von ListBox1.Items als Objekte vom Typ DataRowView.Da Deine Frage nichts mehr mit dem ursprünglichen
Thema dieses Threads zu tun hat, solltest Du künftig
für solche Fragen einen neuen Thread eröffnen.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
hey ho
ich bin mir nicht ganz sicher ob ich das verstanden hab
aber dieses stück code verschiebt den String aus der Listbox in die Msgbox:
If mSwitch Then
Buffer = "ListBox.DataSource: DataTable" & NL
' Listbox1.Items enthält DataRowViews
Dim Item As DataRowView
For Each Item In ListBox1.Items
Buffer &= _
NL & Item(0).ToString & _
" " & Item(1).ToString
NextElse
Buffer = "ListBox.Items: String" & NL
' ListBox1.Items enthält Strings
Dim Item As String
For Each Item In ListBox1.Items
Buffer &= NL
Buffer &= Item
Next
End IfMsgBox(Buffer, MsgBoxStyle.Information)
mSwitch = Not mSwitch
FillLlistBox()ich verstehe nicht ganz wie man mit vb jede zeile bearbeitet
dass man mit einer for each...next oder for...next schleife arbeit ist klar aber den befehl das jede zeile bearbeitet wird...
For i = 0 To ListBox1.Items.Count - 1
Dim zählen As Byte = Len(Label2.Text)
Dim zählenF As Short = Len(EINE ZEILE AUS LISTBOX1) - zählen
Dim Ende As String = Mid(EINE ZEILE AUS LISTBOX1, zählenF, zählen)
If Ende = TextBox1.Text Then
ListBox2.Items.Add(DIESE ZEILE AUS LISTBOX1)
Else : End If
Next iwenn das ende der einzelnen Zeile aus Listbox1 den selben wert wie der Text aus Textbox1 hat dann wird dieser Text in Listbox2 kopiert
wenn er nicht übereinstimmt wird weitergesucht
ralle
-
Hallo,
ich bin mir nicht ganz sicher ob ich das verstanden hab
Ich befürchte nicht zu wissen, was Du dabei nicht
verstanden hast.aber dieses stück code verschiebt den String aus der
Listbox in die Msgbox:
If mSwitch Then
Buffer = "ListBox.DataSource: DataTable" & NL
' Listbox1.Items enthält DataRowViews
Dim Item As DataRowView
For Each Item In ListBox1.Items
Buffer &= _
NL & Item(0).ToString & _
" " & Item(1).ToString
Next
Else
Buffer = "ListBox.Items: String" & NL
' ListBox1.Items enthält Strings
Dim Item As String
For Each Item In ListBox1.Items
Buffer &= NL
Buffer &= Item
Next
End If
MsgBox(Buffer, MsgBoxStyle.Information)
mSwitch = Not mSwitch
FillLlistBox()Hier werden keine Strings "verschoben", sondern ganz
einfach der jeweilige Inhalt von ListBox1.Items(x) kopiert
und als String in einer MsgBox ausgegeben.ich verstehe nicht ganz wie man mit vb jede zeile bearbeitet
In obigem Code wird nirgendwo Text bearbeitet, sondern eben
ganz einfach aus der Listbox in eine Stringvariable kopiert und
diese dann via MsgBox ausgegeben.dass man mit einer for each...next oder for...next schleife arbeit
ist klar aber den befehl das jede zeile bearbeitet wird...Ich weiss nicht, was Du mit "jede zeile bearbeitet wird" meinst.
Meinst Du vielleicht dieses CodestückFor Each Item In ListBox1.Items
Buffer &= NL
Buffer &= Item
Nextstatt dessen könntest Du auch schreiben
For Each Item In ListBox1.Items
Buffer = Buffer & NL
Buffer = Buffer & Item
NextIst es das, was Du nicht verstanden hast?
For i = 0 To ListBox1.Items.Count - 1
Dim zählen As Byte = Len(Label2.Text)
Dim zählenF As Short = Len(EINE ZEILE AUS LISTBOX1) - zählen
Dim Ende As String = Mid(EINE ZEILE AUS LISTBOX1, zählenF, zählen)
If Ende = TextBox1.Text Then
ListBox2.Items.Add(DIESE ZEILE AUS LISTBOX1)
Else : End If
Next iIch weiss nicht so recht, was Du mit vorstehendem Code
erreichen willst.wenn das ende der einzelnen Zeile aus Listbox1 den selben
wert wie der Text aus Textbox1 hat dann wird dieser Text in
Listbox2 kopiert
wenn er nicht übereinstimmt wird weitergesuchtKopiere das nachfolgende Beispiel in ein leeres Formmodul Form1.vb.
' / Code in Form1.vb
Public Class Form1
Private Listbox1 As ListBox
Private Listbox2 As ListBox
Private WithEvents Textbox1 As TextBoxPrivate Sub Form1_Load _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs _
) Handles MyBase.LoadListbox1 = New ListBox
With Listbox1
.Font = New Font("Arial", 10)
.SetBounds(10, 10, 150, 300)
.IntegralHeight = False
End With
Me.Controls.Add(Listbox1)Listbox2 = New ListBox
With Listbox2
.Font = Listbox1.Font.SetBounds _
(Listbox1.Right + 15, 10, 150, 300).IntegralHeight = False
End With
Me.Controls.Add(Listbox2)Textbox1 = New TextBox
With Textbox1
.Font = New Font("Arial", 14).SetBounds _
(10, Listbox1.Bottom + 20, _
Listbox2.Right - 10, .Height)End With
Me.Controls.Add(Textbox1)Dim i As Integer
For i = 1 To 12
Listbox1.Items.Add(MonthName(i, False))
Next
Listbox1.SelectedIndex = 0Textbox1.Text = "er"
End Sub
Private Sub Textbox1_KeyPress _
(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs _
) Handles Textbox1.KeyPressIf e.KeyChar = Chr(13) Then
Dim i As Integer
Dim LBItem As StringListbox2.Items.Clear()
For i = 0 To Listbox1.Items.Count - 1
LBItem = Listbox1.Items(i).ToString
If LBItem.EndsWith(Textbox1.Text) Then
Listbox2.Items.Add(LBItem)
End If
Next
End If
End SubPrivate Sub Form1_Shown _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles Me.ShownTextbox1.Focus()
Textbox1.SelectionStart = _
Textbox1.Text.Length
End Sub
End Class
' \\\ E N T ENach dem Programmstart siehst Du eine Form mit 2 Listboxen
und einer Textbox.Gib in die Textbox z.B. "er" ein und drücke die Eingabetaste.
Es werden alle Einträge aus Listbox1 die mit "er" enden in
die Listbox2 kopiert.Gib in die Textbox z.B. "li" ein und drücke die Eingabetaste.
Es werden all Einträge aus Listbox1 die mit "li" enden in
die Listbox2 kopiert.* !!! *
Ansonsten nochmals die Bitte, weitere Fragen in einem
neuen Thread zu stellen, da diese nichts mehr mit dem
ursprünglichen Thema zu tun haben.
* !!! *Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
* !!! *
Ansonsten nochmals die Bitte, weitere Fragen in einem
neuen Thread zu stellen, da diese nichts mehr mit dem
ursprünglichen Thema zu tun haben.
* !!! *yo gut
hier gehts zu meinen neuen fragen...^^
http://social.msdn.microsoft.com/Forums/de-DE/vbasicexpresseditionde/thread/38ae1afd-cefb-43fa-966b-6b95646843b1/