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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите определиться как лучше реализовать 
:(
    Опции темы
VolgaevLG
Дата 18.4.2013, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите, пожайлуста.
Тщетно пытаюсь разобраться сам, но не знаю с чего начать.
Вообщем у меня проект - календарик:

Код

class Day
{
     Panel dayPanel;

     public Day(Panel parentpanel, Size size, Point loc)
     {
          dayPanel = new Panel();
          dayPanel.Location = loc;
          dayPanel.Size = size;
          parentpanel.controls.add(dayPanel);
     }
}

class Calendar
{
     Day[] days;

     public Calendar(Panel parentpanel)
          {
          days = new Days[35];
          for (int x = 0; x < 5; x++)
               {
               for (int y = 0; y < 7; y++)
                    {
                    Days[y + x * 5] = new Day(parentpanel, %расчитываю размер%, %расчитываю положение%);
                    }
               }
          }
}




Грубо говоря есть Panel на форме, ссылка на которую передается в класс Calendar, который плиткой выкладывает на этой панели экземпляры класса Day (в основании которого тоже Panel).
Вопроса у меня два:
Первый и основной. Как сделать так, что бы при нажатии кнопкой мыши на dayPanel вызывалась функция из класса Calendar. Например при обработке события MouseDown класс Calendar выделял бы нажатый "день" другим цветом. Пробовал через делегат, но по моему как-то нагорожено получилось.
Код

class Day
{
delegate void OneClick(int x);
OneClick _oneclick
###

     public Day(Panel parentpanel, Size size, Point loc, OneClick oneclick)
     {
          ###
          panelDay.OnMouseDown += MouseDown;
          _oneclick = oneclick;
          ###
     }

     public void MouseDown(object sender,  ###)
     {
          _oneclick(номер текущего элемента);
     }
}

Второй (если кому не лень ответьте). Меня терзают смутные сомнения что я что-то делаю не так))) Читаю про паттерны, UML, но не могу "скомпоновать" все в одно целое. Как бы Вы реализовали данное решение (что лучше сделать все на формах, панелях, или может быть лучше нарисовать все)

PM MAIL   Вверх
Экскалупатор
Дата 18.4.2013, 11:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



при формировании каждого "дня" твой класс, должен подписаться на событие "клик" по этому созданному элементу, ну и в обработчике события вызывать уже все что хочется
PM MAIL ICQ   Вверх
VolgaevLG
Дата 18.4.2013, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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


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

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


 




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


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

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