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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 23:44   #1
Neorlin
 
Регистрация: 15.04.2011
Сообщений: 7
Печаль Массив кнопок

Люди, возможно ли создать прогу, которая при процедуре:
Код:
private void Form1_Load(object sender, EventArgs e)
создавался массив кнопок 10х10, а при нажатии на одну из этих кнопок, она исчезала. Если возможно то желательно код в студию. Заранее спасибо

Последний раз редактировалось Neorlin; 15.04.2011 в 23:51.
Neorlin вне форума Ответить с цитированием
Старый 16.04.2011, 00:43   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
List<Button> buttons = new List<Button> ();
Button b = new Button(this);
buttons.Add(b);
как то так
dampirik вне форума Ответить с цитированием
Старый 16.04.2011, 19:57   #3
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Возможно.

Код:
private void Click_c(object sender, EventArgs e)
{
(sender as Button).Visible = false;
}

List<Button> buttons = new List<Button> ();
for (int i = 0; i < 100; i++)
{
Button b = new Button();
b.Click += Click_c;
b.Width = 10;
b.Height = 10;
buttons.Add(b);
}
mMAg вне форума Ответить с цитированием
Старый 16.04.2011, 20:55   #4
Neorlin
 
Регистрация: 15.04.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от mMAg Посмотреть сообщение
Возможно.

Код:
private void Click_c(object sender, EventArgs e)
{
(sender as Button).Visible = false;
}

List<Button> buttons = new List<Button> ();
for (int i = 0; i < 100; i++)
{
Button b = new Button();
b.Click += Click_c;
b.Width = 10;
b.Height = 10;
buttons.Add(b);
}
спасибо, но как обращаться к кнопкам далее?
например мне нужно создать еще одну кнопку, при нажатии на которую, все 100 кнопок снова становятся видны.
Neorlin вне форума Ответить с цитированием
Старый 17.04.2011, 02:03   #5
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
Сообщение

Цитата:
Сообщение от Neorlin Посмотреть сообщение
спасибо, но как обращаться к кнопкам далее?
например мне нужно создать еще одну кнопку, при нажатии на которую, все 100 кнопок снова становятся видны.
Вот упрощенный пример необходимой работы(создается не список или массив, а просто переменная типа Button, которой при равенстве null выделяется область памяти, в противном случае при нажатии на button1 кнопка скрывается):
Код:
Button button = null;
private void button1_Click(object sender, EventArgs e)
        {
            if (button == null)
            {
                button = new Button();
                button.Left = button.Top = button.Width = button.Height = 200;
                button.Parent = this;
            }
            else
            {
                button.Visible = !button.Visible;
            }
        }
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 18.04.2011, 17:51   #6
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Цитата:
Сообщение от Neorlin Посмотреть сообщение
спасибо, но как обращаться к кнопкам далее?
например мне нужно создать еще одну кнопку, при нажатии на которую, все 100 кнопок снова становятся видны.
Просто добавь воды )

Код:
private void Click_c(object sender, EventArgs e)
{
(sender as Button).Visible = false;
}

List<Button> buttons = new List<Button> ();
for (int i = 0; i < 100; i++)
{
Button b = new Button();
b.Click += Click_c;
b.Width = 10;
b.Height = 10;
buttons.Add(b);
}
В качестве примера этого достаточно. Если хочется другой обработчик нажатия по кнопке, можешь всегда создать еще один по образу и подобию. Насчет обращения к кнопкам, это твое дело, можешь по индексам, можешь еще как-нибудь:

Код:
private void Click_v(object sender, EventArgs e)
{
foreach(Button b in buttons)
    b.Visible = true;
}
Можешь даже добавить такую кнопку в прежний массив. От того, что у нее обработчик на нажатие иной, она кнопкой быть не перестает.

Код:
Button b = new Button();
b.Click += Click_v;
b.Width = 10;
b.Height = 10;
buttons.Add(b);
Ну а куда и каким образом размещать это уже детали, про которые вопросов не было.

Mixim, на что button1_Click повешен? Кнопка ведь должна себя скрывать.
mMAg вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив кнопок в WinForms N1KeL Windows Forms 3 24.05.2010 22:53
18 кнопок Xcopy Общие вопросы Delphi 9 11.03.2010 20:56
Динамический двумерный массив кнопок. Вопрос i-cpp Общие вопросы C/C++ 4 25.01.2010 21:39
Динамически создать массив кнопок (design time) HellMercenariess Общие вопросы Delphi 4 21.11.2009 00:47
Стиль кнопок north Помощь студентам 5 15.11.2007 22:00