Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
27 / 26 / 11
Регистрация: 25.03.2014
Сообщений: 217
1

Сравнение текста в нескольких TextBox, опираясь на эталон

14.11.2015, 14:43. Показов 1208. Ответов 4
Метки нет (Все метки)

Приветствую, друзья. К делу.
На форме имеется 20 текстбоксов, в которых, допустим, магическим образом появляется информация. Нужно реализовать следующее:
при нажатии на один из текстбоксов считать нажатый текстбокс и информацию в нем эталонными, и сравнить ее со всеми остальными текстбоксами. В случае совпадения - делать текст в проверяемом текстбоксе зеленым, в противном случае красным.
Я могу лишь представить, что это должно быть некое объединение текстбоксов в массив и какой-то перебор... Но никак не могу реализовать свои догадки. Надеюсь на вашу помощь, заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2015, 14:43
Ответы с готовыми решениями:

Сравнение текста введенного в Textbox по name. При этом Textbox создан динамически
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Сравнение значений динамически заданных textBox, и отображение текста в многострочном Textbox
Часть первая. Дано: динамически создаваемые TextBox'ы TextBox tb = new TextBox; for (int i=0...

Множественное сравнение текста в TextBox
День добрый, помогите разобраться, а то я немного запутался. Имеется форма на ней текстбоксы, в...

Запись текста из нескольких textbox в txt
Доброго времени суток. Возник вопрос. У меня 13 textbox-ов, мне нужно брать текст только из 10:...

4
1414 / 1318 / 302
Регистрация: 03.10.2012
Сообщений: 1,379
15.11.2015, 23:35 2
Цитата Сообщение от iCCupPlatoon Посмотреть сообщение
это должно быть некое объединение текстбоксов в массив
Коллекция контролов на форме - это и есть массив.
Сортируем его по типу и проверяем свойство "Text" для каждого элемента:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
 Dim patt As String = ""
Private Sub TextBox_Click(ByVal sender As TextBox, ByVal e As System.EventArgs)
        patt = sender.Text
        For Each t As TextBox In Me.Controls.OfType(Of TextBox)()
            If t.Text = patt Then
                t.ForeColor = Color.Green
            Else
                t.ForeColor = Color.Red
            End If
        Next
    End Sub
Это процедура обработчика события Click. Она одна для всех текстбоксов.
А чтобы не писать 20 раз вручную Handles для каждого текстбокса, добавим в Form_Load:
VB.NET
1
2
3
4
5
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For Each t As TextBox In Me.Controls.OfType(Of TextBox)()
            AddHandler t.Click, AddressOf TextBox_Click
        Next
    End Sub
2
27 / 26 / 11
Регистрация: 25.03.2014
Сообщений: 217
16.11.2015, 09:51  [ТС] 3
MrCrown, буду пробовать, спасибо. Но как же мне подстроить ваш код под себя, если у меня... Несколько "групп" текстбоксов (группировка, скорее, условная, видна только мне - я использовал уникальное имя для каждого, например WOTText1, WOTText2... WOTText36, наряду с ними CFText1, CFText2...) и таких "групп" 11 штук. А в Form_Load мы возьмем их всех.

Добавлено через 27 минут

Не по теме:

Срок редактирования кончился, хотелось бы добавить.
Подозреваю, что можно использовать свойство объекта Tag =)



Добавлено через 20 минут
Сделал вот так, обрабатываются, конечно, нужные текстбоксы, но из-за
VB.NET
1
For Each t As TextBox In Me.Controls
остальные текстбоксы сбрасываются в красный цвет, а нужно чтобы состояние текстбоксов с разными тегами сохранялось...
VB.NET
1
2
3
4
5
6
7
8
9
Private Sub TextBox_Click(ByVal sender As TextBox, ByVal e As System.EventArgs)
        For Each t As TextBox In Me.Controls.OfType(Of TextBox)()
            If t.Text = sender.Text And sender.Tag = t.Tag Then
                t.ForeColor = Color.Green
            Else
                t.ForeColor = Color.Red
            End If
        Next
    End Sub
0
1414 / 1318 / 302
Регистрация: 03.10.2012
Сообщений: 1,379
16.11.2015, 23:50 4
Лучший ответ Сообщение было отмечено iCCupPlatoon как решение

Решение

Цитата Сообщение от iCCupPlatoon Посмотреть сообщение
как же мне подстроить ваш код под себя
Мне очень трудно гадать не зная логики приложения.
Могу предложить пару вариантов
1. Сгруппировать поля в контейнеры, например, в группбоксы
Тогда, вместо
VB.NET
1
For Each t As TextBox In Me.Controls.OfType(Of TextBox)()
надо писать
VB.NET
1
For Each t As TextBox In нужныйGroupBox.Controls.OfType(Of TextBox)()
2. В процедуре обработчика события Click явно указать, события каких полей нужно обрабатывать:
VB.NET
1
2
3
4
Private Sub TextBox_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles TextBox1.Click, TextBox3.Click, TextBox8.Click
        '...
    End Sub
Наверняка, есть еще и другие варианты
1
27 / 26 / 11
Регистрация: 25.03.2014
Сообщений: 217
17.11.2015, 06:51  [ТС] 5
Именно так и поступил. Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2015, 06:51

Сохранение текста из нескольких textbox, ComboBox и тд. в новый файл
Здравствуйте, помогите новичку! есть пример: Public Class Form1 Private Sub...

Взять номер символа из введенного текста, опираясь на заданный алфавит
Здраствуйте. Есть алфавит: grph:array of char = ('А','Б','В',...,'Э','Ю','Я'); Могу взять...

Событие ReadOnlyChanged в TextBox Одно для нескольких TextBox-ов
Здравствуйте! Дамы и Господа, подскажите как сделать одно событие ReadOnlyChanged для нескольких...

Сравнение текста из файла и сравнение с текстом в программе char - Dev C++
Доброго времени суток! Имеется код программы: ifstream test("primer.txt"); char awm = "kod";...

Как узнать, что длина текста в TextBox-е превышает ширину самого TextBox-а
У меня есть TextBox. Нужно узнать, выходит ли текст за границы TextBox-a, если да, то выполняется...

Работа с textbox. Сохранение текста при выходе из программы только если textbox имеет текст
Создал форму в которой есть textbox и ToolStripMenuItem - кнопка выхода из приложения. Идея в том,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru