|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
есть базовая форма 1 с кнопкой Б, по нажатию на которую отрабатывает код 1, от нее наследуется другая форма 2. можно ли в форме-потомке 2 сделать так, чтобы при нажатии на кнопку Б отрабатывал код 2 и не отрабатывал при этом код 1? т.е. на мой взгляд проблема в том, что нельзя написать вот так в форме-потомке 2: Код: c# 1.
ибо авторThe event 'Control.Click' can only appear on the left hand side of += or -= ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 15:37 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
FB Programmer, да - можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 15:40 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Можно ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 16:16 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
КАК? в чем смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 16:34 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 16:40 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
fortibransa, сделал так же. теперь MessageBox.Show("Click Form2"); два раза отрабатывает... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 17:16 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
а вот так двараза будет отрабатывать MessageBox.Show("Click Form1"); Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
что с этим делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 17:22 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
не знаю, правильно ли это или нет, но помогло удаление строки Код: c# 1.
из потомка ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 17:43 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
FB Programmerне знаю, правильно ли это или нет, но помогло удаление строки Код: c# 1.
из потомка Это в конструкторе такая строка? Ну да, раз два раза подписка на событие осуществляется, то два раза событие и будет отработано. Вы в делегате this.button9.Click накапливаете очередь обработчиков на это событие, а потом они все последовательно выполняются при возникновение этого события. Почитайте подробнее, что такое делегаты и события в дотнете. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 19:03 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Doomplay998а потом они все последовательно выполняются при возникновение этого события Не последовательно. Очередь вызова методов из invocation list делегата в общем случае недетерминирована, и гарантий последовательного выполнения в порядке назначения обработчиков нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 03:33 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныDoomplay998а потом они все последовательно выполняются при возникновение этого события Не последовательно. Очередь вызова методов из invocation list делегата в общем случае недетерминирована, и гарантий последовательного выполнения в порядке назначения обработчиков нет. Дай, пожалуйста, ссылку на это. Я вроде последнее, что читал (давно это было), что выполняются они именно в порядке назначения по типу очереди (не стека). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 04:08 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Doomplay998Дай, пожалуйста, ссылку на это. Я вроде последнее, что читал (давно это было), что выполняются они именно в порядке назначения по типу очереди (не стека). https://www.google.ru/search?q=c# delegate invocation list order В моем постинге выше ключевое слово - "в общем случае". С одной стороны, конечно, в стандартном MulticastDelegate invocation list реализуется как linked list : A MulticastDelegate has a linked list of delegates, called an invocation list, consisting of one or more elements. When a multicast delegate is invoked, the delegates in the invocation list are called synchronously in the order in which they appear. If an error occurs during execution of the list then an exception is thrown. с другой стороны, автору какого-либо класса ничего не мешает реализовать свою логику хранения подписчиков через явно прописанные add/remove, и там внутри может быть что угодно - HashSet, например (см. всё того же Рихтера, у него есть пример именно на эту тему). И ничего не мешает точно так же поступить в будущих версиях фреймворка и MS - очередность вызова никак не обеспечивается контрактом делегатов. И поэтому проектировать приложение, опираясь на предположения о порядке вызова делегатов, равно и как высказывать такие предположения - опрометчиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 06:23 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныDoomplay998Дай, пожалуйста, ссылку на это. Я вроде последнее, что читал (давно это было), что выполняются они именно в порядке назначения по типу очереди (не стека). https://www.google.ru/search?q=c# delegate invocation list order В моем постинге выше ключевое слово - "в общем случае". С одной стороны, конечно, в стандартном MulticastDelegate invocation list реализуется как linked list : A MulticastDelegate has a linked list of delegates, called an invocation list, consisting of one or more elements. When a multicast delegate is invoked, the delegates in the invocation list are called synchronously in the order in which they appear. If an error occurs during execution of the list then an exception is thrown. с другой стороны, автору какого-либо класса ничего не мешает реализовать свою логику хранения подписчиков через явно прописанные add/remove, и там внутри может быть что угодно - HashSet, например (см. всё того же Рихтера, у него есть пример именно на эту тему). И ничего не мешает точно так же поступить в будущих версиях фреймворка и MS - очередность вызова никак не обеспечивается контрактом делегатов. И поэтому проектировать приложение, опираясь на предположения о порядке вызова делегатов, равно и как высказывать такие предположения - опрометчиво.Вера Павловна, Вы сошли с ума, ТС открыл для себя наследование, а Вы ему "свою логику хранения подписчиков через явно прописанные add/remove", це ж китайская грамота для начинающих. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 07:49 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Насчет порядка вызова делегатов, да в документациях пишут мол , чер-те как будут обрабатыватся, но на практике я чер-ти как ни разу не встретил, такое - же и про forech пишут (писали). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 07:51 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Лучше всего так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 14:20 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
NomixЛучше всего так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Зачет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 14:32 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Сон Веры Павловныреализуется как linked list Не, тупо как object[]. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 15:33 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
ЕвгенийВНе, тупо как object[]. Привет индусам-техписателям МСДН. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 16:12 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЕвгенийВНе, тупо как object[]. Привет индусам-техписателям МСДН. Я тут беру инфу в основном. http://www.ilspy.net/ ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 17:36 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
fortibransaНасчет порядка вызова делегатов, да в документациях пишут мол , чер-те как будут обрабатыватся, но на практике я чер-ти как ни разу не встретил, такое - же и про forech пишут (писали). В общем случае чёрти как, но там явно что-то типа стандартного алгоритма для наиболее распространённых случаев, и всякие кейсы для специальных. Просто у тебя были только распространённые случаи, вот и кажется, что всегда одинаково. Насчёт форича - если ты итератор внутрифоричевский в другом потоке хотя бы раз вызовешь, то вместо 1, 2, 3, 4 можешь получить 1, 3, 4, например. NomixЛучше всего так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
А что это даёт вместо переопределения самого обработчика события? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 17:49 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
ЕвгенийВСон Веры Павловныпропущено... Привет индусам-техписателям МСДН. Я тут беру инфу в основном. http://www.ilspy.net/ Инфа там может быть и есть, но только на скуле тебя сначала обольют гавном, но зато потом реально помогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 19:34 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
визуальное наследование форм - путь к тому, чтобы потом его убрать и больше не использовать никогда. в WinForms это наследование еще и глючное (тут раньше уже не раз обсуждалось) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 20:47 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
fsharp_fsharpвизуальное наследование форм - путь к тому, чтобы потом его убрать и больше не использовать никогда. в WinForms это наследование еще и глючное (тут раньше уже не раз обсуждалось) Ну, диалоговую форму с панелью и двумя кнопками вполне себе хорошо наследовать ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 22:07 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
fsharp_fsharpвизуальное наследование форм - путь к тому, чтобы потом его убрать и больше не использовать никогда. в WinForms это наследование еще и глючное (тут раньше уже не раз обсуждалось) Форма - обычный класс, а глючит мышководная контролокидательная студия ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2016, 22:45 |
|
вопрос про наследование в winforms...
|
|||
---|---|---|---|
#18+
Изопропилfsharp_fsharpвизуальное наследование форм - путь к тому, чтобы потом его убрать и больше не использовать никогда. в WinForms это наследование еще и глючное (тут раньше уже не раз обсуждалось) Форма - обычный класс, а глючит мышководная контролокидательная студия Т. е. если в WPF можно без мышководства делать формы, то наследовать можно и вообще зэ бест? А то я у себя кое-где отнаследовал - теперь по фасту фиксить? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 04:24 |
|
|
start [/forum/topic.php?fid=20&fpage=53&tid=1400248]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 148ms |
0 / 0 |