|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
Нужен пример класса, от которого будет наследоваться Button30.11.2014, 15:47. Показов 1712. Ответов 11
Метки нет (Все метки)
0
|
|
| 30.11.2014, 15:47 | |
|
Ответы с готовыми решениями:
11
Нужен пример класса Реализовать GenericRepository, который будет наследоваться от IEntityRepository<T> |
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
||||||
| 30.11.2014, 16:02 | ||||||
|
Maks1980,
0
|
||||||
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
| 30.11.2014, 16:28 [ТС] | |
|
то есть сделать еще 1 класс, наследуемый от Button и от моего класса? И не совсем понимаю где это прописывать. Если можно, пример в более готовом виде.
PS. Вот такой парадокс у нас - лабы есть по С#, а лекций нету. Вернее, препод сказал что ничего рассказывать не будет по языку, все есть на msdn.ru ;(
0
|
|
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
| 30.11.2014, 17:04 | |
|
Maks1980, множественное наследование не получится сделать. Если вы хотите расширить функционал кнопки - наследуйте от Button, если поведение кнопки зависит от Вашего уже реализованного класса - просите его экземпляр как свойство новой кнопки.
Будет проще если Вы скинете текст задания.
0
|
|
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
| 30.11.2014, 18:17 [ТС] | |
|
текста нет, препод объяснял на пальцах. Есть написаная лаба, но он сказал что неправильно.
Вот в приложении 6 кнопок справа, их надо унаследовать от своего класса и переопределить функцию рисования. Рисование сделано не совсем правильно, хотел как красивее, получилось как всегда. Я сам переделаю. Надо - выбираем кнопкой нужную фигуру, далее два клика по Image (начальная и конечная точка) и рисуется фигура. Не совсем понятно зачем там свой класс нужен вообще. ЗЫ. Это первая моя программа на C#, если не считать первую лабу - консольное Hello world.
0
|
|
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
| 30.11.2014, 18:18 [ТС] | |
|
0
|
|
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
||||||||||||||||||||||
| 30.11.2014, 19:04 | ||||||||||||||||||||||
|
Maks1980, предположим у меня есть простой объект со свойством и методом:
![]() Добавлено через 3 минуты я думаю он имел виду создать класс "Инструмент", от него унаследовать инструменты рисования круга линии итд.. Тогда пропадут все эти switch'и в событиях, код станет масштабируемым.
0
|
||||||||||||||||||||||
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
||
| 30.11.2014, 19:26 [ТС] | ||
|
а можно ли сделать как то, в зависимости от того какая нажата кнопка, определить свой обработчик Paint у PictureBox? А не как сделано у меня через swith-case
Добавлено через 4 минуты
0
|
||
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|||||||||||||||||||||
| 30.11.2014, 23:08 | |||||||||||||||||||||
|
Maks1980, да по-разному можно. Например так. Во-первых нужно отделить модель от вида, создаем "Среду"/"Документ" где храним все что понадобится для рисования, методы загрузки/сохранения итд. Да, "Текущий цвет" цвет нужно хранить в отдельном свойстве, завязав его изменение на события, весть код который у вас лежит в форме следует вынести в UserControl.
DrawEnvironment
Теперь класс инструмент (можно реализовать не классом а интерфейсом), сюда пишем что понадобится для рисования всех фигур (чтобы код не повторять): Instrument
Я бы от него унаследовал два класса - первый это построение фигур по двум точкам (от него - эллипс, линия, прямоугольник), второй - непрерывные построители (карандаш, кисть итд..). Ну можно унаследовать только шесть штук, пример "карандаша": Pencil
На форме объявляем переменную "Текущий инструмент", передаем ему события с picturebox, можно подвязать на события. Так же можно хранить коллекцию инструментов с иконками итд, загружать их динамически, создавать тулбары для них из конфига, иначе - просто при клике на кнопку - меняем значение CurrentInstrument. Аналогично, можно отвязать pictureBox от формы, создав отдельный компонент для рисования Form
1
|
|||||||||||||||||||||
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
| 02.12.2014, 12:24 [ТС] | |
|
Спасибо, вроде разобрался, сделал пока только 1 кнопку. Как сделать в этом же духе для двух вкладок TabPage - PictureBox'ы должны быть независимы, содержать каждый свой рисунок. Добавить просто обработчики для второго пиктурбокса не получилось.
Еще нужно сделать кнопку (TabPage1 / TabPage2). программа запоминает состояние кнопки и при следующем открытии делает активным выбранный TabPage
0
|
|
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
| 02.12.2014, 15:16 | |
|
Maks1980, можно использовать Один pictureBox, загружая в него данные от разных DrawEnvironment. Либо создать отдельный компонент Canvas/DrawingControl (как назовете).. Нужно определиться где хранить различные параметры - типа выбранного инструмента, если они привязаны к вкладке - перенести их в Канвас как свойства, иначе - оставить на форме.
Немного изменил видимость полей в классах и добавил этот самый канвас (DrawingControl). В коде формы метод AddPage - создает вкладку, я привел пример как создавать новый документ и читать из файла. Вам нужно создать конфиг приложения или просто текстовый файл рядом с exe или Application.Settings - при загрузке формы создавать все сохраненные вкладки.
0
|
|
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
||||||
| 02.12.2014, 22:17 [ТС] | ||||||
|
Хотел сделать так:
Но сразу стало выдавать вот это (на картинке)
0
|
||||||
| 02.12.2014, 22:17 | |
|
Помогаю со студенческими работами здесь
12
Как наследоваться от класса TIniFile?
Создание нескольких объектов класса и их сохранение (Нужен пример) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита табличной части. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|