Соединить элементы двух ListBox и записать в Label - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем доброго здоровичка!!! Помогите пожалуйста с программой: На форме 2 листбокса. Они заполняются случайно из массивов. В 1-м лб половина слова, во 2-м лб 2-я половина слова. Во 2-м лб слова перемешиваются случайно, чтобы не была видна связь слов. Человек выбирает слово из 1-го лб, выбирает слово из 2-го лб. Рядом с лб есть лейблы. Кнопка склеивает и получается новое слово, удаляет их из лб1 и лб2 и помещает новое слово в очередной лейбл. Теперь проблемы: 1) как сделать запись нового слова в очередной лейбл? 2) после удаления, во 2-м лейбле слова становятся правильно под первые слова, а надо их опять перемешать. 3) программа смотрит новое слово в массиве и если правильно, меняет цвет фона на зелёный, если нет - красный. Программу выкладываю. Заранее спасибо!!!

Решение задачи: «Соединить элементы двух ListBox и записать в Label»

textual
Листинг программы
Public Class Form2
    Private wrd1() As String
    Private wrd2() As String
    Private arr() As String
    Private arr1() As String
    Private arr2() As String
    Private iStart, iCount As Integer
    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'каким то образом формируем базовые массивы wrd1, wrd2 (например считываем из файла)
        Dim ss1, ss2 As String
        ss1 = "трек бор мони диск пол след буй вино град ком кон радио ком фа"
        ss2 = "бол ода тор овод оса опыт вол град ус пас курс узел пресс соль"
        ss1 &= " 1трек 1бор 1мони 1диск 1пол 1след 1буй 1вино 1град 1ком 1кон 1радио 1ком 1фа"
        ss2 &= " бол1 ода1 тор1 овод1 оса1 опыт1 вол1 град1 ус1 пас1 курс1 узел1 пресс1 соль1"
        ss1 &= " 2трек 2бор 2мони 2диск 2пол 2след 2буй 2вино 2град 2ком 2кон 2радио 2ком 2фа"
        ss2 &= " бол2 ода2 тор2 овод2 оса2 опыт2 вол2 град2 ус2 пас2 курс2 узел2 пресс2 соль2"
        ss1 &= " 3трек 3бор 3мони 3диск 3пол 3след 3буй 3вино 3град 3ком 3кон 3радио 3ком 3фа"
        ss2 &= " бол3 ода3 тор3 овод3 оса3 опыт3 вол3 град3 ус3 пас3 курс3 узел3 пресс3 соль3"
        wrd1 = ss1.Split(" "c)
        wrd2 = ss2.Split(" "c)
        iStart = 0 : iCount = 14
        setActiveArrs(iStart, iCount)
    End Sub
    Private Sub Mix(ByVal list As String())
        If list Is Nothing Then Exit Sub
        Dim rnd As New Random
        For I As Integer = list.Count - 1 To 0 Step -1
            Dim j As Integer = rnd.Next(0, I + 1)
            Dim temp As String = list(I)
            list(I) = list(j)
            list(j) = temp
        Next
    End Sub
    Private Sub setActiveArrs(ByVal jStart As Integer, ByVal jCount As Integer)
        If jStart + jCount - 1 > wrd1.Length - 1 Then Exit Sub
        ReDim arr(iCount - 1) : ReDim arr1(iCount - 1)
        Array.Copy(wrd1, jStart, arr, 0, jCount)
        Array.Copy(wrd2, jStart, arr1, 0, jCount)
        ReDim arr2(arr1.Length - 1)
        Array.Copy(arr1, arr2, arr1.Length)
        Mix(arr2)
        ListBox1.DataSource = Nothing
        ListBox2.DataSource = Nothing
        ListBox1.DataSource = arr
        ListBox2.DataSource = arr2
        ListBox1.SelectedIndex = 0
        ListBox2.SelectedIndex = 0
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim i1 As Integer = ListBox1.SelectedIndex
        Dim s1 As String = ListBox1.SelectedItem
        Dim s2 As String = ListBox2.SelectedItem
        Dim ss2 As String = arr1(i1)
        TextBox1.Text &= s1 & s2 & vbCrLf
        If s2 = ss2 Then
            TextBox1.BackColor = Color.LightGreen
        Else
            TextBox1.BackColor = Color.MistyRose
        End If
        If CheckBox1.Checked Then
            'будем удалять отработавшую строку из первого списка
            ListBox1.DataSource = Nothing
            arElementDel(arr, i1)
            arElementDel(arr1, i1)
            ListBox1.DataSource = arr
        End If
    End Sub
    Private Sub arElementDel(ByRef rr() As String, ByVal ii As Integer)
        Array.Copy(rr, ii + 1, rr, ii, UBound(rr) - ii)
        ReDim Preserve rr(rr.Length - 2)
    End Sub
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        iStart += iCount
        setActiveArrs(iStart, iCount)
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы