2014-03-11 3 views
-1

У меня есть две группы текстовых полей, A и B, и они создаются динамически.Значения текстового поля сортировка

Моя программа должна работать следующим образом: 1. Текстовые поля имеют соответствующие B текстовые поля. 2. Затем текстовые поля B следует сортировать по их значениям в порядке возрастания. 3. На основе этого порядка будут также отсортированы значения текстовых полей.

Вход: enter image description here

Выход: enter image description here

Пожалуйста, помогите мне. Благодаря!

+3

возможно ** ** точный дубликат: http://stackoverflow.com/questions/22317571/how-to-sort-values-of-textboxes-in-vb – har07

+0

Дон Не ставьте один и тот же вопрос несколько раз. – Jens

+0

Извините. Кстати, мы - одноклассники, другой пользователь, который задал один и тот же вопрос. Здесь я включил фотографии. Это то, что мы хотим. – SmashedPotato

ответ

0

Попробуйте Как это

Первый Создание массива переменной и передать A Texbox Value's, и создать еще одну переменную массива и передать B Textbox Value's. После этого делать как этот

Dim xaTexBoxValue() As Integer = {5, 6, 4, 2} // A Text Box Values 
     Dim xBTextBoxValue() As Integer = {10, 3, 23, 50} // B Text Box Values 
     Dim xTemp As Integer = 0 

     For xi As Integer = 0 To xaTexBoxValue.Count - 1 

      For xj As Integer = xi + 1 To xaTexBoxValue.Count - 1 

       If xaTexBoxValue(xj) < xaTexBoxValue(xi) Then 
        xTemp = xaTexBoxValue(xi) 
        xaTexBoxValue(xi) = xaTexBoxValue(xj) 
        xaTexBoxValue(xj) = xTemp 

        xTemp = xBTextBoxValue(xi) 
        xBTextBoxValue(xi) = xBTextBoxValue(xj) 
        xBTextBoxValue(xj) = xTemp 

       End If 

      Next 

     Next 

После этой функции передать это значение в текстовое поле-х

+0

как передать значения в текстовые поля? – SmashedPotato

+0

что вы в текстовом поле – Sathish

+0

Сэр, я уже понял это. Кстати, вы заметили буквы рядом с текстовыми полями Set B? Как я могу упорядочить его вместе со значениями, отсортированными? Пожалуйста, смотрите фотографии. Мне действительно нужно найти, как это должно быть сделано. – SmashedPotato

1

Это может быть достигнуто сравнительно легко с помощью LINQ, который обеспечивает OrderBy метод сортировки, а также способ Zip для выравнивания Как и с Bs.

Предполагая TextBox массивов inputAs, inputBs, outputAs и outputBs:

Private Sub Sort_Click(sender As Object, e As EventArgs) Handles Sort.Click   
    ' Zip A and B inputs and extract values 
    Dim inputs = 
     inputAs.Zip(inputBs, 
        Function(a, b) New With {.A = CInt(a.Text), .B = CInt(b.Text)}) 

    ' Sort values by B 
    Dim values = inputs.OrderBy(Function(item) item.B).ToArray() 

    ' Set outputs with sorted input values 
    For i = 0 To values.Length - 1 
     outputAs(i).Text = values(i).A.ToString() 
     outputBs(i).Text = values(i).B.ToString() 
    Next 
End Sub 

Для сортировки с ярлыками тоже значения B может быть отсортированы вместе с соответствующими порядковыми, а затем порядковым используется для копирования из вход управления для управления выходными:

Private Sub Sort_Click(sender As Object, e As EventArgs) _ 
    Handles Sort.Click 
    ' Map Bs to collection of ordinals and values 
    ' Then order by values 
    Dim items = 
     InputBs _ 
      .Select(Function(control, i) _ 
        New With _ 
        {.Ordinal = i, 
        .Value = CInt(control.Text)}) _ 
      .OrderBy(Function(item) item.Value) _ 
      .ToArray() 

    ' Set outputs with sorted input values   
    For i = 0 To items.Length - 1 
     Dim j = items(i).Ordinal 
     OutputAs(j).Text = InputAs(i).Text 
     OutputBs(j).Text = InputBs(i).Text 
     OutputLabels(j).Text = InputLabels(i).Text 
    Next 
End Sub 
Смежные вопросы