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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> узнать значение в цикле, работа с компонентами 
:(
    Опции темы
AGENTxXx
Дата 8.2.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем привет! Вот такой вопрос. Знаю что есть такая возможность проверить в цикле значение разных компонентов: т.е. есть например radiobutton1,radiobutton2,radiobutton3,radiobutton4 и я хотел бы в цикле узнать у кого стоит в Checked значение true. Кто ни будь знает как это реализовать. Должно вроде быть типа такого:
Код

string vsp="";
int i = 1;
while (vsp=="")
            {
                if (radiobutton[i].Checked==true)
                    vsp = i.ToString();
                i++;
            }

Точно конечно не знаю есть ли возможность в C# но в actionScript точно можно

Это сообщение отредактировал(а) AGENTxXx - 8.2.2010, 16:46
PM MAIL   Вверх
KelTron
Дата 8.2.2010, 18:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если просто перебор:
Код

foreach (var btn in this.Controls.OfType<RadioButton>())
{
    if (btn.Checked) 
    {
        //...
    }
}


Если обязательно нужен индекс:
Код

var btns = this.Controls.OfType<RadioButton>().ToArray();
for (int i = 0; i < btns.Length; ++i)
{
    if (btns[i].Checked)
    {
        //...
    }
}

Хотя наверно тебе нужно вот это:
Код

var rBtn = this.Controls.OfType<RadioButton>().Single(r => r.Checked);



Это сообщение отредактировал(а) KelTron - 8.2.2010, 18:27


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
AGENTxXx
Дата 8.2.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



KelTron, незнаю как у тебя, но у меня не хочет робить. В первом случаи и во 2м ни заходит ни куды (имеетсы ввиду все время false) а 3й способ не понял как переменить. Как хоть такая система (вид поиска) называется, я может в книгах еше поищу. Просто вообще даже не знаю что в гугл писать правильно(( 
PM MAIL   Вверх
KelTron
Дата 9.2.2010, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я написал для случая если кнопки лежат на форме и этот код вызывается в одном из её методов. Если они лежат в другом контейнере, например, на панели, то нужно изменить код:
Код

this.panel.Controls

Цитата(AGENTxXx @  8.2.2010,  19:10 Найти цитируемый пост)
все время false

Значит ничего не выбрано..)

Цитата(AGENTxXx @  8.2.2010,  19:10 Найти цитируемый пост)
3й способ не понял как переменить

А что тут понимать, в переменной rBtn будет радиобаттон, который выбран.


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
AGENTxXx
Дата 9.2.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Кнопки находятся в GroupBoxе. Но я думаю он ни какого влияния не дает, так как в свойствах GroupBoxа не описаны радио баттоны(( Может как будет время скинешь пример? Я сейчас еще попробую код поизменять, может получится. Если получится, отпишусь!
PM MAIL   Вверх
KelTron
Дата 9.2.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AGENTxXx @  9.2.2010,  13:30 Найти цитируемый пост)
 так как в свойствах GroupBoxа не описаны радио баттоны

И с чего бы им там быть, у него есть коллекция Controls, там и надо искать. 

Цитата(KelTron @  9.2.2010,  05:27 Найти цитируемый пост)
Если они лежат в другом контейнере, например, на панели, то нужно изменить код:код C#1:this.panel.Controls

Это я для кого написал?

В твоём случае будет this.groupBox.Controls


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
AGENTxXx
Дата 9.2.2010, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Извини, что сразу не попробовал, вот так у меня получилось:
Код

var btns = this.groupBox2.Controls.OfType<RadioButton>().ToArray();


Так заработало, только вот последовательность какая то странная... 1й это 3, а 4й это 0.. Ну эт фигня в общем, главное что получилось. Спасибо большое! Если не сложно можешь посоветовать книгу или адрес кто про контролы почитать?
PM MAIL   Вверх
KelTron
Дата 9.2.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AGENTxXx @  9.2.2010,  17:06 Найти цитируемый пост)
1й это 3, а 4й это 0

Если нужно просто узнать какой номер выбран то проще сделать так:
Либо в дизайнере, либо в конструкторе формы, установить свойства Tag у кнопок:
Код

public Form1()
{
    InitializeComponent();
    this.radioButton1.Tag = 1;
    this.radioButton2.Tag = 2;
    this.radioButton3.Tag = 3;
    this.radioButton4.Tag = 4;
}

А потом в одно действие узнаём номер кнопки:
Код

int selNum = this.groupBox2.Controls.OfType<RadioButton>()
    .Where(r => r.Checked)
    .Select(r => (int)r.Tag)
    .Single();


Цитата(AGENTxXx @  9.2.2010,  17:06 Найти цитируемый пост)
книгу или адрес кто про контролы почитать

Например, Петцольд:
http://oz.by/books/more1025356.html
http://nnm.ru/blogs/s1pan/programmirovanie...om_1_2_petcold/


Это сообщение отредактировал(а) KelTron - 9.2.2010, 18:02


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
AGENTxXx
Дата 9.2.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хотел репутацию тебе поднять но увы.... говорят постов не хватает. 2 ссылка очень заинтересовала, а вот на 2й я уже имею эти книги в электронном. С удовольствием бы купил 1й книгу, но интернет магазинам как то не доверяю, а у себя в городе незнаю где найти(( недавно искал, дак в некторых вообще ни каких нет по C#(( 
PM MAIL   Вверх
KelTron
Дата 9.2.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AGENTxXx @  9.2.2010,  20:44 Найти цитируемый пост)
незнаю где найти((

В электронном сто пудов должна быть. У меня, правда, она в бумажном..)

Цитата(AGENTxXx @  9.2.2010,  20:44 Найти цитируемый пост)
говорят постов не хватает

Можно модератора попросить..))


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Heinzz
Дата 9.2.2010, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AGENTxXx @  9.2.2010,  20:44 Найти цитируемый пост)
 интернет магазинам как то не доверяю

я постоянно покупаю через интернет, проблем не было, доставка почтой, платишь там же при получении


--------------------
user posted image
PM MAIL   Вверх
AGENTxXx
Дата 9.2.2010, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Какие тобой проверены?
PM MAIL   Вверх
wester
Дата 9.2.2010, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



AGENTxXx, 
я думаю продолжение разговора о магазинах лучше устроить в личке
ЗЫ мной проверен Озон - раз 5 заказывал всякую редкую мелочевку, в том числе книги
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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