![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
Ребята, подскажите, что мне нужно сделать чтоб работал вот такой код:
|
|||
|
||||
unicuum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: 1 Всего: 8 |
Есть такое правило: объекты производного типа можно безопасно использовать из базового.
Control (базовый) MyControl (производный) Влом это на практике проверять как это работает, попробуй вместо:
вот так
-------------------- ![]() обычный день на винграде |
||||
|
|||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
unicuum, эти два варианта ничем не отличаются помимо того, что в первом случае будет NullReference, а во втором InvalidCast...если с не является объектом класса MyControl, конечно...
senalex, что конкретно не работает? -------------------- СУВ, Partizan. |
|||
|
||||
unicuum |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: 1 Всего: 8 |
P.S. Кстати, вот что ещё подумалось. Можно заменить первое условие, если код не хочет работать.
заменить на
Вот как то так может выглядеть
Есть ещё третий способ:
Добавлено @ 13:44
А мне все равно, отличаются они или нет. Если человек говорит не работает, я даю альтернативу. Включать VS и проверять код жутко лень. ![]() Это сообщение отредактировал(а) unicuum - 16.2.2009, 13:48 -------------------- ![]() обычный день на винграде |
||||||||||
|
|||||||||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: нет Всего: 36 |
senalex,
Ребята, подскажите, что мне нужно сделать чтоб работал вот такой код: Очевидно, надо разместить контрол на форме, чтобы визард добавил его в коллекцию Controls. |
|||
|
||||
unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: 1 Всего: 8 |
В том то и дело, что это очевидно. В противном случае цикл пройдёт не найдя ни одного подходящего контрола. ![]() Добавлено через 1 минуту и 38 секунд senalex, напиши потом в чём дело было, не в том ведь, что ты забыл добавить контрол в форму ![]() -------------------- ![]() обычный день на винграде |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
unicuum, странно давать альтернативу(которая по сути своей не отличается от кода топикстартера), не разобравшись до конца в ошибке...приведённый топикстартером код должен нормально отрабатывать... -------------------- СУВ, Partizan. |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: нет Всего: 36 |
unicuum,
В том то и дело, что это очевидно. не вижу смысла без необходимости всё усложнять. :gigi:
|
|||
|
||||
unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: 1 Всего: 8 |
Так это помогает самому вспомнить различные способы сделать одно и тоже. ![]() ![]() Ладно, в общем я запустил эту студию, и знаю в чём ошибка. Сделал форму и кинул туда элементы управления кнопку и текст.
Глюки в том, что человека обращался к классу, а не к объекту. Я просто обратился к этому объекту формы, хотя в целом не важно к какому объекту обращаться. -------------------- ![]() обычный день на винграде |
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
Люди, извенити за неясно описанную проблему.
Здесь MyControl это потомок стандартного контрола. В коллекции контролов родителя (формы) я его нахожу, но не могу обратиться к его свойству. Компилятор ругается на то, что ему не известно как его конвертировать. вот текст ошибки: Cannot convert type 'System.Windows.Forms.Control' to 'APROComponent.Login' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion Подскажите кто сталкивался с этой проблемой, что делать. |
|||
|
||||
Лен |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
senalex,
в связи с абсолютно корректным с виду кодом возникает только один вопрос: Кто такие MyProperty и MyValue? Можешь привести код более полно? |
|||
|
||||
unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: 1 Всего: 8 |
Но Form1 это ведь не объект, если ты только не переписал всё то, что сгенерировал визард. Потому что визард генерирует класс с этим именем. А поскольку Controls не являются статическими, то ты не можешь обратится к ним через имя класса, только через объект. Тебе компилятор ясно сказал, в чём ошибка. Пожалуй Partizan прав, мне не стоит телепатить не имея реального кода. Тем более что с нормальным кодом я бы давно уже всё собрал. -------------------- ![]() обычный день на винграде |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |