С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451

Ошибка при добавлении своего контрола на форму

04.03.2017, 14:51. Показов 2160. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

У меня постоянно возникает одна и та же ошибка. Лично для меня не слишком критичная, но в некоторых моментах критичная.

Дело в том, что, когда я создаю свой контрол, он появляется в панели элементов, но в дизайнере положить его на форму я не могу - возникает ошибка. Мне не принципиально когда класть контрол на форму - в дизайнере или программно, но есть один момент, в связи с которым для меня это становится принципиально.

Добавлено через 1 минуту
Причем эта ошибка возникает только на работе, дома все в порядке, сколько угодно своих контролов могу класть на форму.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2017, 14:51
Ответы с готовыми решениями:

Ошибка при добавлении пользовательского контрола на форму в режиме дизайнера
Либа написанная мною для личных нужд. В нее написал новый юзерконтрол , включающий те которые в этой либе были. Повесил этот компонент на...

Как найти ID элемента своего контрола (usercontrol) который помещен на форму
ребят... подскажите плз как найти ID элемента своего контрола(usercontrol) который кинул на форму??? вариант, что б оканчивался на ID...

Ошибка при добавлении кнопки на форму
Добрый день, форумчане. При добавлении кнопки на форму появляется сообщение "Неопределенная функция Apploadstring" в выражении....

14
 Аватар для kesean
292 / 291 / 108
Регистрация: 04.09.2010
Сообщений: 638
04.03.2017, 22:40
Цитата Сообщение от Лакшми Посмотреть сообщение
У меня постоянно возникает одна и та же ошибка
Намекнули бы хоть, что за ошибка.
По своему опыту скажу, для добавления usercontrol'а в дизайнере, у него должен быть конструктор без параметров.
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
04.03.2017, 23:28  [ТС]
К сожалению или к счастью не могу дома воспроизвести эту ошибку. Принесу с работы в понедельник вечером.

А, точно могу сказать, что говорит что-то вроде "Не задана ссылка на объект". Хотя проект уже две тыщи раз пересобран, и чистила я все, и заново собирала - все равно эта ошибка.

Мало того, это происходит не в одном проекте, а в разных. Думаю, какой-то косяк в самом VS. Возможно, переустановка решит проблему.
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
05.03.2017, 00:11
Лакшми, если именно эта ошибка, то надо код контрола смотреть. в момент инициализации попытка обращения к какому-либо свойству или результату функции возвращающую null. Посмотрите по коду, что происходит при создании элемента, возможно какой-то подводный камень в одном из переопределенных методов, например OnPaint... в общем нужен код компонента, что бы не гадать на кофейной гуще
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
05.03.2017, 00:47  [ТС]
Ну Павлик! Ну какой код? Он автоматом формируется. Я могу пустой создать и будет тоже самое.
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
09.03.2017, 18:48  [ТС]
Здравствуйте! Разобралась я почему ошибки возникают. Неправильное использование переменных из статического класса. Почитала внимательно ошибку, нашла ее. Там было явное приведение к int. Сделала ConvertTo.Int32, пустил дальше. Далее указал на ошибку, где я пытаюсь циклом пройтись по строкам DataTable из статического класса. Сделала проверку "если DataTable != null", ошибка исчезла. Теперь данный контрол без проблем ложится на форму. Мало где использовала статические переменные, поэтому многое не учла.
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
10.03.2017, 00:51
Лакшми, вообще со статикой надо аккуратно. Особенно если это какие-либо источники данных.
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
10.03.2017, 19:40  [ТС]
Теперь я знаю об этом. Раньше крайне редко использовала статику, а сейчас посчитала, что мне это нужно. Использовать или не использовать статику - очень много споров. Но она же для чего-то создана. И я ею пользуюсь. В своем проекте я использую статические классы и DataTable, т.к. не вижу смысла передавать каждый раз ссылку на экземпляр нестатического класса, передавать его через 5 ссылок, из модуля в модуль. Тем более, что данная DataTable мне нужна одна на весь проект. Скажите, может я не права?
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
10.03.2017, 20:05
Цитата Сообщение от Лакшми Посмотреть сообщение
данная DataTable мне нужна одна на весь проект
Есть же паттерн Singlenton
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
10.03.2017, 20:56  [ТС]
Паттернами не пользуюсь, нет потребности
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
10.03.2017, 21:31
Лакшми, можно инициализировать "лениво"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class ItIsLazy
{
    private static DataTable _data;
 
    public static DataTable Data
    {
        get
        {
            LazyInitializer.EnsureInitialized(ref _data, () =>
            {
                return new DataTable();
            });
            
            return _data;
        }
    }
}
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
10.03.2017, 21:35  [ТС]
Только класс должен быть static, или я ошибаюсь?

Добавлено через 24 секунды
Причем static public

Добавлено через 1 минуту
В любом статическом классе все переменные и методы должны быть тоже статическими
0
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
10.03.2017, 22:31
Цитата Сообщение от Лакшми Посмотреть сообщение
Только класс должен быть static, или я ошибаюсь?
Не должен, но можно сделать таковым.
Цитата Сообщение от Лакшми Посмотреть сообщение
Причем static public
Чтобы можно было передавать его между сборками.
Цитата Сообщение от Лакшми Посмотреть сообщение
В любом статическом классе все переменные и методы должны быть тоже статическими
Верно.
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
10.03.2017, 23:54  [ТС]
Итого "супер-пупер" красивые решения должны быть без статика! Ну потому что потому что без goto! Никаких объяснений нет. Я считаю, что должен быть статик! Но я объяснения имею.
У меня статик Datatable, которая используется везде! У меня функция, которая делает херование данных. Я тоже не вижу сысла делать для нее отдельный экземпляр. Ну вот это например.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
11.03.2017, 00:05
Цитата Сообщение от Лакшми Посмотреть сообщение
Итого "супер-пупер" красивые решения должны быть без статика! Ну потому что потому что без goto! Никаких объяснений нет. Я считаю, что должен быть статик! Но я объяснения имею.
У меня статик Datatable, которая используется везде! У меня функция, которая делает херование данных. Я тоже не вижу сысла делать для нее отдельный экземпляр. Ну вот это например.
Можно и со статиком. Если ваш Datatable действительно один на все приложение, то он может и должен быть статиком.
НО этот статик нужно более цивильно оформить - в виде синглтона. Разница между просто статиком и синглтоном - небольшая, но есть.
Основное отличие в том, что в синглтоне вы сможете явно прописать логику создания экземпляра, и главное - менять эту логику в зависимости от условий. Например, если вы тестируете приложение, то вы можете генерировать тестовую таблицу, и не работать с реальными данными. Если вы находитесь в desing mode (как раз ваш случай), то вы можете генерировать пустую таблицу - заглушку, вместо обращения к БД. И так далее.
Цитата Сообщение от Лакшми Посмотреть сообщение
Ну потому что потому что без goto!
И goto можно тоже использовать, если нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2017, 00:05
Помогаю со студенческими работами здесь

Ошибка при добавлении компонента на форму
Здравствуйте! Проблема в том что при добавлении нового компонента на форму часто бывает так что после компиляции в тех или иных случаях...

Ошибка при добавлении компонента на форму
причем на форме уже есть компоненты.. выдает ошибку в адрессе и ссылается на модуль rtl60.bpl в помощи у справки такой заголовок...

Ошибка при добавлении таблицы из БД в форму
Создал базу данных в самом Visual Studio, при переносе таблицы в форму выходит следующая ошибка: Что это такое и как это исправить?...

Ошибка при добавлении таблицы на форму
Возникает следующая ошибка, когда просто перетаскиваю таблицу на форму. Раньше такого не было, не могу разобраться в чем дело, т.к. до...

Ошибка при добавлении данных в бд через форму
вот action: <? require_once '../config.php'; $name_post = $_POST; $cat = $_POST; $mini_desc = $_POST; $description =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru