0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
1 | |
Нужен пример класса, от которого будет наследоваться Button30.11.2014, 15:47. Показов 1483. Ответов 11
Метки нет (Все метки)
0
|
30.11.2014, 15:47 | |
Ответы с готовыми решениями:
11
Нужен пример неизменяемого класса и класса от которого нельзя наследоваться Нужен пример класса Реализовать GenericRepository, который будет наследоваться от IEntityRepository<T> Нужен пример создания статического класса |
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
||||||
30.11.2014, 16:02 | 2 | |||||
Maks1980,
0
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
30.11.2014, 16:28 [ТС] | 3 |
то есть сделать еще 1 класс, наследуемый от Button и от моего класса? И не совсем понимаю где это прописывать. Если можно, пример в более готовом виде.
PS. Вот такой парадокс у нас - лабы есть по С#, а лекций нету. Вернее, препод сказал что ничего рассказывать не будет по языку, все есть на msdn.ru ;(
0
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
30.11.2014, 17:04 | 4 |
Maks1980, множественное наследование не получится сделать. Если вы хотите расширить функционал кнопки - наследуйте от Button, если поведение кнопки зависит от Вашего уже реализованного класса - просите его экземпляр как свойство новой кнопки.
Будет проще если Вы скинете текст задания.
0
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
30.11.2014, 18:17 [ТС] | 5 |
текста нет, препод объяснял на пальцах. Есть написаная лаба, но он сказал что неправильно.
Вот в приложении 6 кнопок справа, их надо унаследовать от своего класса и переопределить функцию рисования. Рисование сделано не совсем правильно, хотел как красивее, получилось как всегда. Я сам переделаю. Надо - выбираем кнопкой нужную фигуру, далее два клика по Image (начальная и конечная точка) и рисуется фигура. Не совсем понятно зачем там свой класс нужен вообще. ЗЫ. Это первая моя программа на C#, если не считать первую лабу - консольное Hello world.
0
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
30.11.2014, 18:18 [ТС] | 6 |
0
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|||||||||||||||||||||
30.11.2014, 19:04 | 7 | ||||||||||||||||||||
Maks1980, предположим у меня есть простой объект со свойством и методом:
Функцию рисования на холсте? Добавлено через 3 минуты я думаю он имел виду создать класс "Инструмент", от него унаследовать инструменты рисования круга линии итд.. Тогда пропадут все эти switch'и в событиях, код станет масштабируемым.
0
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
30.11.2014, 19:26 [ТС] | 8 |
а можно ли сделать как то, в зависимости от того какая нажата кнопка, определить свой обработчик Paint у PictureBox? А не как сделано у меня через swith-case
Добавлено через 4 минуты Вот, наверно это правильная постановка вопроса
0
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|||||||||||||||||||||
30.11.2014, 23:08 | 9 | ||||||||||||||||||||
Maks1980, да по-разному можно. Например так. Во-первых нужно отделить модель от вида, создаем "Среду"/"Документ" где храним все что понадобится для рисования, методы загрузки/сохранения итд. Да, "Текущий цвет" цвет нужно хранить в отдельном свойстве, завязав его изменение на события, весть код который у вас лежит в форме следует вынести в UserControl.
DrawEnvironment
Теперь класс инструмент (можно реализовать не классом а интерфейсом), сюда пишем что понадобится для рисования всех фигур (чтобы код не повторять): Instrument
Я бы от него унаследовал два класса - первый это построение фигур по двум точкам (от него - эллипс, линия, прямоугольник), второй - непрерывные построители (карандаш, кисть итд..). Ну можно унаследовать только шесть штук, пример "карандаша": Pencil
На форме объявляем переменную "Текущий инструмент", передаем ему события с picturebox, можно подвязать на события. Так же можно хранить коллекцию инструментов с иконками итд, загружать их динамически, создавать тулбары для них из конфига, иначе - просто при клике на кнопку - меняем значение CurrentInstrument. Аналогично, можно отвязать pictureBox от формы, создав отдельный компонент для рисования Form
1
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
|
02.12.2014, 12:24 [ТС] | 10 |
Спасибо, вроде разобрался, сделал пока только 1 кнопку. Как сделать в этом же духе для двух вкладок TabPage - PictureBox'ы должны быть независимы, содержать каждый свой рисунок. Добавить просто обработчики для второго пиктурбокса не получилось.
Еще нужно сделать кнопку (TabPage1 / TabPage2). программа запоминает состояние кнопки и при следующем открытии делает активным выбранный TabPage
0
|
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
|
|
02.12.2014, 15:16 | 11 |
Maks1980, можно использовать Один pictureBox, загружая в него данные от разных DrawEnvironment. Либо создать отдельный компонент Canvas/DrawingControl (как назовете).. Нужно определиться где хранить различные параметры - типа выбранного инструмента, если они привязаны к вкладке - перенести их в Канвас как свойства, иначе - оставить на форме.
Немного изменил видимость полей в классах и добавил этот самый канвас (DrawingControl). В коде формы метод AddPage - создает вкладку, я привел пример как создавать новый документ и читать из файла. Вам нужно создать конфиг приложения или просто текстовый файл рядом с exe или Application.Settings - при загрузке формы создавать все сохраненные вкладки.
0
|
0 / 0 / 2
Регистрация: 09.10.2014
Сообщений: 18
|
||||||
02.12.2014, 22:17 [ТС] | 12 | |||||
Хотел сделать так:
Но сразу стало выдавать вот это (на картинке)
0
|
02.12.2014, 22:17 | |
02.12.2014, 22:17 | |
Помогаю со студенческими работами здесь
12
Нужен пример описания любого класса Как наследоваться от класса TIniFile? Нужен пример с глобальной переменной которую можно будет использовать в StringGrid Создание нескольких объектов класса и их сохранение (Нужен пример) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|