Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PYTANIE] VB10 AutoSelect ListBox


Rekomendowane odpowiedzi

Opublikowano

Siema mam programik, który działa następująco. Otwieram plik tekstowy do ListBox'a, przykładowy wiersz wygląda "blabla, blablala", potem klikam w button'a i do RichTextBox'a wrzuca mi tylko to co jest przed przecinkiem. Moje pytanie brzmi, jak zrobić żebym nie musiał manualnie klikać w każdy wiersz (jest ich sporo), tylko, żeby automatycznie zaznaczało je po kolei i wrzucało do tego RichTextBox'a. Kombinowałem trochę, ale nie bardzo coś mi wychodziło.

Mam nadzieję, że ktoś znajdzie rozwiązanie.

Kocham mpcforum.pl!!!

18706.png

Opublikowano

For Each item As String In ListBox1.Items

MessageBox.Show(item)

Next

Opublikowano

Nie che, żeby wyskakiwał mi komunikat z tymi item'ami.

 

Wstawie mój kod, ktory wykonuje czynnosc do której dąze.

 

For Each item As String In ListBox2.Text.Split(",")
            If item.Contains("@") Then

                RichTextBox3.Text = RichTextBox3.Text & item & Environment.NewLine

            End If
        Next

 

Powyższa funkcja odpowiada za usunięcie, wszystkiego po przecinku i przekopiowania do RichTextBox'a, tych rzeczy, które zawierają "@" w sobie. Kod działa, ale tylko gdy zaznacze manualnie dany Item w ListBox'ie, co chciałbym zautomatyzować. Dąże do tego by sam zaznaczał po kolei itemy z ListBox'a. Myślę, że teraz problem wygląda bardziej przejrzyście. :)

Kocham mpcforum.pl!!!

18706.png

Opublikowano

ListBox1.SelectionMode = SelectionMode.MultiExtended

 

For i As Integer = 0 To ListBox1.Items.Count - 1

Dim item As String = ListBox1.Items(i).ToString()

If item.Contains("@") Then

RichTextBox1.Text += String.Format("{0}{1}", item, vbNewLine)

ListBox1.SetSelected(i, True)

End If

Next

Przejdzie po każdym elemencie ListBoxa i zaznaczy oraz doda do RTB odpowiednie rzeczy.
Opublikowano

Button (laduje plik)

 

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        OpenFileDialog1.ShowDialog()

        streamer = IO.File.OpenText(OpenFileDialog1.FileName)

        Dim delimiters() As Char = New Char() {vbCr, vbLf}

        Dim mystring() As String = streamer.ReadToEnd.Split(delimiters, StringSplitOptions.RemoveEmptyEntries)
        ListBox2.Items.AddRange(mystring)

 

I ten kod co mi podesłałes

 

ListBox2.SelectionMode = SelectionMode.MultiExtended

        For i As Integer = 0 To ListBox2.Items.Count - 1
            Dim item As String = ListBox2.Items(i).ToString()
            If item.Contains("@") Then
                RichTextBox3.Text += String.Format("{0}{1}", item, vbNewLine)
                ListBox2.SetSelected(i, True)
            End If
        Next

Kod sam w sobie działa, tylko mogłbyś jeszcze dodać, by do RTB kopiowało tekst bez tego po przecinku. Chodzi mi o to co miałem wcześniej ze Splitem:

 

For Each item As String In ListBox2.Text.Split(",")

Właśnie nie za bardzo wiem jak i gdzie wrzucic i przerobic tego Splita. :)

Kocham mpcforum.pl!!!

18706.png

Opublikowano

Button (laduje plik)

 



Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        OpenFileDialog1.ShowDialog()

        streamer = IO.File.OpenText(OpenFileDialog1.FileName)

        Dim delimiters() As Char = New Char() {vbCr, vbLf}

        Dim mystring() As String = streamer.ReadToEnd.Split(delimiters, StringSplitOptions.RemoveEmptyEntries)
        ListBox2.Items.AddRange(mystring)

 

I ten kod co mi podesłałes

 



ListBox2.SelectionMode = SelectionMode.MultiExtended

        For i As Integer = 0 To ListBox2.Items.Count - 1
            Dim item As String = ListBox2.Items(i).ToString()
            If item.Contains("@") Then
                RichTextBox3.Text += String.Format("{0}{1}", item, vbNewLine)
                ListBox2.SetSelected(i, True)
            End If
        Next

Kod sam w sobie działa, tylko mogłbyś jeszcze dodać, by do RTB kopiowało tekst bez tego po przecinku. Chodzi mi o to co miałem wcześniej ze Splitem:

 



For Each item As String In ListBox2.Text.Split(",")

Właśnie nie za bardzo wiem jak i gdzie wrzucic i przerobic tego Splita. :)

 

 

RichTextBox3.Text += String.Format("{0}{1}", item, vbNewLine)

zmień na

 

RichTextBox3.Text += String.Format("{0}{1}", item.Substring(0, item.IndexOf(",")), vbNewLine)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...