Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2011, 17:30   #1
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
Радость как перечисльть компоненты

мне нужно считать в массив данные из TextBox, котрых 9 штук.
как перечислить TextBox'ы?
sergio11 вне форума Ответить с цитированием
Старый 06.01.2011, 18:32   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Допустим все они лежат на форме:
Код:
foreach (Control control in this.Controls)
{
if (control is TextBox)
{
TextBox textBox = (TextBox)control;
// пишешь в свой массив
}
}
Hollander вне форума Ответить с цитированием
Старый 06.01.2011, 19:07   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как всегда
Код:
            foreach (var c in this.Controls) {
                if (c is TextBox) {
                    ((TextBox)c).Text = "1";
                }
Впрочем если не ошибаюсь есть и другие альтернативные способы
Цитата:
Hollander
Опередил
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.01.2011, 21:04   #4
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
По умолчанию

извените за тупость, но не могу додуматься куда массив подставлять?

Код:
string[] mas = new string[9];
            for (int i = 0; i <= 8;i++ )
                foreach (var c in this.Controls)
                {

                    if (c is TextBox)
                    {
                        mas[i]=(((TextBox)c).Text);
                    }
                }
правильно?

Последний раз редактировалось Stilet; 06.01.2011 в 23:29.
sergio11 вне форума Ответить с цитированием
Старый 06.01.2011, 21:48   #5
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
List<TextBox> tb = new List<TextBox>();
TextBox t1 = new TextBox();
tb.Add(t1);
dampirik вне форума Ответить с цитированием
Старый 06.01.2011, 22:56   #6
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
По умолчанию

люди подсказали сделать вот так.
Код:
string[] mas = Controls.OfType<TextBox>().Select(tb => tb.Text).ToArray();
теперь новая проблема. как организовать проверку на повторение?
я думаю как то так, но не правильно работает.
Код:
for (int i = 0; i <= 8; i++)
                for (int j = 1; j <= 8; j++) 
            {
                if ((mas[i].ToString()) == (mas[j].ToString()))
                    label2.Text = "error";
                else
                    label2.Text = "fine";
            }
по идеи сначало должно сравнится всё, а потом вевестись при нажатии на бутон.
sergio11 вне форума Ответить с цитированием
Старый 06.01.2011, 23:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как организовать проверку на повторение?
Нормально объясни чего ты добиваешься всеми этими выкрутасами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 02:18   #8
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нормально объясни чего ты добиваешься всеми этими выкрутасами.
я хочу сделать судоку. для начала я расположил 9 TextBoxв в ряд, потом поидее считал в массив все числа которые занесены в них, теперь мне нужно проверить повторяются числа или нет. как сортировать элементы я знаю, а как на повторяемость не знаю.как подсказал KelTron(с другого форума)
Код:
string[] mas = Controls.OfType<TextBox>().Select(tb => tb.Text).ToArray();
               
                if (mas.Length>mas.Distinct().Count())
                {
                    label2.Text = "error";
                }
                else
                {
                    label2.Text = "fine";
                }
проверка хорошо прошла. Но теперь TextBoxв 81 и мне нужно прописать одно и тоже действие. раньше я в каждом прописывал, но теперь слишком геморойно.
вот как я делал раньше.
Код:
private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            textBox1.Text = Convert.ToString(label1.Text[8]);
        }
а теперь не знаю как. только до этого додумался.
Код:
foreach (Control c in this.Controls)
            {           
                if (c is TextBox)
                    ((TextBox)c).Text = Convert.ToString(label1.Text[8]);
            }
но куда это засунуть не могу понять.
Помогите доконца доделать, потом се книжку куплю, а то какие есть, они для работы в консоли и в них самое основное, а сложных вещей нет. думаю Троелсона взять говорят перевод плохой, но содержание хорошее.

Последний раз редактировалось sergio11; 07.01.2011 в 12:54.
sergio11 вне форума Ответить с цитированием
Старый 07.01.2011, 13:25   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но теперь TextBoxв 81
Что-то я не понял, разве то что тебе подсказал KelTron(с другого форума) сейчас для 81 поля не работает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 13:39   #10
sergio11
Пользователь
 
Аватар для sergio11
 
Регистрация: 18.02.2010
Сообщений: 96
По умолчанию

для 81 не проверял, но у меня в другом проблема. как
Код:
private void textBox1_MouseClick(object sender, MouseEventArgs e)

        {

            textBox1.Text = Convert.ToString(label1.Text[8]);

        }
это сделать для 81 текстбокса? раньше в ручную прописывал, а теперь геморойно
sergio11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить Image и другие компоненты находящиеся на нем как рисунок Paul Hindenburg Мультимедиа в Delphi 2 30.12.2010 09:53
Как связать компоненты (Connect) killerrv Компоненты Delphi 1 15.12.2010 21:13
как подключить компоненты LMD? oleg_at Компоненты Delphi 3 21.01.2010 14:45
Как устанавливать компоненты? TwiX Общие вопросы Delphi 3 31.07.2009 19:10
Как установить компоненты? KEF Общие вопросы Delphi 2 01.06.2009 19:40