Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> c# Как очистить 30 textBox или обнулить их, Обнуление или очистка textBox 
:(
    Опции темы
hardes
Дата 26.4.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.11.2006

Репутация: нет
Всего: нет



Доброго дня, возможно обнулить большое количество textBox "функцией" точно не знаю, control. Как ею пользоваться, или же есть возможность другими способами обнулить единоразово 40-50 текстбоксов
PM MAIL   Вверх
Rififi
Дата 26.4.2009, 14:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 5
Всего: 36



Код
Controls.OfType<TextBox>().Select(x => x.Text = "").All(x => true);

PM MAIL   Вверх
Exai1e
Дата 26.4.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 3
Всего: 30



Студии под рукой нет, но попробуй следующий код:
Код

foreach (Control c in this.Controls)
  if (c is TextBox)
    ((TextBox)c).Text = "";



--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
-Mikle-
Дата 26.4.2009, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Rififi, так покороче будет:
Код

            this.Controls.OfType<TextBox>().All(x => (x.Text = string.Empty) == string.Empty);


Добавлено через 1 минуту
Цитата(Exai1e @  26.4.2009,  17:03 Найти цитируемый пост)
Студии под рукой нет, но попробуй следующий код

этот код однозначно будет работать, даже без проверки smile


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
DragonFire
Дата 27.4.2009, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 1
Всего: 9



А можешь пояснить код этот?
Тоже всегда пишу также, как предложит Exai1e....


--------------------
PM MAIL ICQ   Вверх
Exai1e
Дата 27.4.2009, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 3
Всего: 30



для меня тоже такой код в новинку  smile 


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
-Mikle-
Дата 27.4.2009, 02:50 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Конечно!
Здесь используется две вещи: Extension methods (расширяющие методы) и Lambda expression (лямбда выражение). Обе они пришли к нам вместе c Linq.

Первая вещь, позволяет расширить любой класс дополнительными методами, тобишь функциональностью.
Вторую вещь, можно рассматривать как анонимные функции.

Далее, есть статический класс System.Linq.Enumerable, в котором объявлены и реализованы методы расширяющие функциональность над типом IEnumerable<T>. То есть метод OfType<TextBox>() физически находится в классе System.Linq.Enumerable. Подробнее, о том как это работает, и как такие методы объявлять самому можно почитать в MSDN.
Так как свойство Controls имеет тип ControlCollection, который является наследником IEnumerable<T>, то все расширительные методы из System.Linq.Enumerable могут применяться для него.
 
А вот это:
x => (x.Text = string.Empty) == string.Empty
является той самой LambdaExpression. Оно, в примере выше, передается в качестве папраметра расширяющему методу All. Ее можно узнать в коде по наличию оператора "=>". Левая его часть это список параметров выражения, а правая это тело выражения. Если бы это был анонимный метод (или метод класса), то он был бы записан так:
Код

delegate(TextBox x)
{
    return (x.Text = string.Empty) == string.Empty;
}

Опять таки, довольно подробно о LambdaExpression можно почтать в MSDN.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Exai1e
Дата 27.4.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 3
Всего: 30



-Mikle-, Спасибо  smile 


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
hardes
Дата 27.4.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.11.2006

Репутация: нет
Всего: нет



Спасибо всем  ответившим.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0742 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.