Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Обработка событий формы в модуле Добавлено: 07.06.10 15:18  

Автор вопроса:  FuzzySense

Ответить

  Ответы Всего ответов: 19  

Номер ответа: 16
Автор ответа:
 FuzzySense



Вопросов: 2
Ответов: 13
 Профиль | | #16 Добавлено: 09.06.10 16:09
ап

Ответить

Номер ответа: 17
Автор ответа:
 Diavolo



Вопросов: 6
Ответов: 46
 Профиль | | #17 Добавлено: 09.06.10 16:52
Ну и пиши, кто тебе мешает? Ведь тебе же уже было сказано, что все равно придется в описании событий вызывать просто метод. А вот обработчиком событий однотипных контролов может быть одна процедура, ибо аргументы будут одни и те же. К примеру, если у тебя есть два button-а, то никто не мешает тебе для них сделать одну процедуру-обработчик события click. Проще всего это сделать в самом дизайнере, выбрав нужную процедуру для события, но можно и в коде. Итак, допустим, у тебя есть две кнопки a и b. Тогда:
  1.  
  2. a.Click +=new EventHandler(Some_button_click);
  3. b.Click +=new EventHandler(Some_button_click);



  1.  
  2. void Some_button_click (object sender, EventArgs e)
  3. {
  4.   //А тут обработка кода, например чтобы узнать какой именно button вызвал событие
  5.   Button Some = (Button) sender;
  6. }



В общем, в таком духе. А вообще - почитай книженции, тут ведь не школа :)

Ответить

Номер ответа: 18
Автор ответа:
 FuzzySense



Вопросов: 2
Ответов: 13
 Профиль | | #18 Добавлено: 11.06.10 01:28
В общем порешал задачку :)
Начальные условия:
Имеем form1, на ней контрол button1
Добавляем два модуля: ProgLogic - здесь описываем логику работы программы(процедуры реакций на события контролов на form1), NewEvent - здесь "подключаем" стандартые события контролов к процедурам в ProgLogic.
Сама связка событий контролов на форме с процедурами в ProgLogic осуществляется через NewEvent посредством AddHandler(оказалось как просто :) )
Листинги:
Код для form1 (событие - загрузка формы)

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        newevent.newevents()
End Sub
End Class

Модуль NewEvent ("подключение" события button1.click к процедуре button1_click модуля ProgLogic):

Module newevent
    Public Sub newevents()
        AddHandler Form1.Button1.Click, AddressOf ProgLogic.Button1_Click
'Здесь у AddHandler два параметра - 1-ый это само событие контрола на форме, 2-ой ссылка на процедуру обработки события
    End Sub
End Module

Ну и наконец сам модуль в котором обрабатываются события контролов формы:
Module ProgLogic
    Public Sub Button1_click() ' Это и есть процедура обработки события Button1.Click на которую ссылается AddHandler из модуля NewEvent, и который инициализируется при загрузки Form1
        form1.Button1.text="Работает блин!"
        Application.Exit()
    End Sub
End Module

Господа, жду комментарии...
Может чета упустил может недоглядел....

Ответить

Номер ответа: 19
Автор ответа:
 FuzzySense



Вопросов: 2
Ответов: 13
 Профиль | | #19 Добавлено: 11.06.10 01:31
Artyom
Спасибо за подсказку!
Diavolo
Создание своих событий - новая тема для размышлений :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам