1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
1 | |
как сделать,чтобы дочерний класс отображался в picbox в любом месте по кликку мышки?27.06.2009, 16:23. Показов 2640. Ответов 18
Метки нет (Все метки)
Может кто нибудь поможет...?
Нам на экзамен дана задача: Создать проект по теме с использованием класса. Используя наследование, создать дочерний класс, имеющий отличительный признак. При создании экземпляра класса выводится изображение в объект PictureBox в точке (X,Y), размер экземпляра – A. Дочерний класс выводится по щелчку мышкой в любую точку PictureBox. Дополнительный метод «Расти» реализован с помощью полиморфизма, экземпляр основного и дочернего классов должны «расти» по-разному. Метод «Расти» активизируется с помощью полосы прокрутки (полосы прокрутки для основного и дочернего классов разные). Основной класс мы создалиБон работает полностью,дочерний тоже создали, только вот не можем сделать чтобы дочерний класс выводился на picbox в любом месте при клике мышкой, и при этом основной рисунок не должен стираться. Помогите пожелуйста. Заранее спасибо.
0
|
27.06.2009, 16:23 | |
Ответы с готовыми решениями:
18
Как отредактировать стили css, чтобы сайт отображался одинаково при любом разрешении экрана? Как вывести данный класс в любом месте? Открытие рекламы после щелчка мышки в любом месте экрана Как сделать, чтобы чтобы компьютер администратора отображался на вcех компьютерах сети? |
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
27.06.2009, 20:35 | 2 |
Координаты мыши есть при срабатывании события MouseDown, можно указать как верхний левый угол
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
27.06.2009, 21:19 [ТС] | 3 |
krab_mal = new Krabik(e.X, e.Y, Convert.ToInt32(txtA.Text),g);
вот мы указали,но не срабатывает,водимо нужно еще что то дописать
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|
28.06.2009, 00:10 | 4 |
Выложите весь код.
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
||||||||||||||||
28.06.2009, 12:57 [ТС] | 5 | |||||||||||||||
Основной класс(ну тут все просто):
Код программы:
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|||||||||||
28.06.2009, 18:24 | 6 | ||||||||||
У Вас ошибка в методе отрисовки потомка:
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
28.06.2009, 23:00 [ТС] | 7 |
Спасибо за подсказку))
Знаете нас вообще ничего не заставляли,выдали,сказали написать программу,курсовую по ней и защититься, а я,очень плохо разбираюсь в си шарпе,поэтому понятия не имею,как по другому все это делается, я бы могла конечно списать откуда нить,но мне потом тогда не защититься будет.... не подскажешь тогда, какой другой способ?
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|||||||||||
29.06.2009, 00:12 | 8 | ||||||||||
Вы можете отрисовывать на PictureBox'e готовое изображение.
К примеру у Вас есть файл с изображением по адресу "D:\image.bmp" и вы хотите его нарисовать:
Ещё могу порекомендовать вместо создания переменных под кисти: SolidBrush blbrush = new SolidBrush(Color.Black) и т.д. воспользоваться классом Brushes, он предоставляет набор кистей основных цветов. К примеру:
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
29.06.2009, 10:24 [ТС] | 9 |
Спасибо большое за подсказки.
Не мог бы ты объяснить что это такое есть: «Расти» реализован с помощью полиморфизма. Особенно полиморфизм, как сюда применить Добавлено через 43 минуты 58 секунд F? еще хотела спросить, вот если я сделаю рисунок с помощью этого метода,который ты мне показал,(он будет находиться у меня в основном классе).а когда я сделаю от него дочерний класс,я смогу к нему пририсовать отличительный признак,например пятно белое?
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|
29.06.2009, 20:48 | 10 |
Ну, думаю, просто нужно создать в родительском классе виртуальный метод который увеличивал бы габаритные размеры на определенный коэффициент, ну а в дочернем переопределить его и увеличивать на, скажем, больший коэффициент.
Сможешь. Есть метод Graphics.FromImage(Image img) - передай туда унаследованное изображение и на полученном объекте нарисуй что-нибудь (g.Draw...), ну и объект соответственно изменится.
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|||||||||||
30.06.2009, 18:12 [ТС] | 11 | ||||||||||
Можешь еще посмотреть:
код программы:
но у меня не срабатывает, ни рисунок по клику не появляется,ни увеличиваюстя,хотя для скроллбаров я в свойствах(Events) тоже прописала scb1_Scroll. A в дочернем классе прописала,как ты и сказал:
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|
30.06.2009, 19:16 | 12 |
Прикрепи к сообщению архив с проектом.
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
30.06.2009, 20:20 [ТС] | 13 |
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
||||||
30.06.2009, 22:21 | 14 | |||||
Во-первых у тебя pictureBox.Enabled равно false - обработчик не вызывается. В функции
По поводу увеличения и скроллбаров.. мм.. ты вызываешь метод(Rasti()), который у тебя не определен ни у родителя ни у потомка.. не знаю что и сказать.
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
30.06.2009, 23:30 [ТС] | 15 |
[QUOTE=Feuer;206393]Во-первых у тебя pictureBox.Enabled равно false - обработчик не вызывается.
УРААААААААААААА...получилося,спасибо тебе огромное :* Осталось только над увеличением голову поломать...ййуууххууу Добавлено через 15 минут 29 секунд А можно как то обойтись без виртуальных методов?
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|
30.06.2009, 23:48 | 16 |
Пожалуйста. Да можно конечно, оставь как есть: вызывай для потомка detDraw(), для родителя - Draw(). Просто с полиморфизмом было бы правильней с позиции соблюдения правил ООП, но поскольку тебе результат важен можно забить, хотя если честно там делов на копейку.
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
01.07.2009, 20:45 [ТС] | 17 |
Ладно попоробуем)
Добавлено через 1 час 39 минут 3 секунды Вот в принципе и получилось, разобралась в виртуальном методе, все кликает и рисует *пыхчу над увеличением* Добавлено через 5 минут 4 секунды Может тогда скажешь как это вообще можно определить, или как это задается,свойство какое то или как то формулой(это на счет увеличения scrollbarом)
0
|
85 / 85 / 6
Регистрация: 13.10.2008
Сообщений: 144
|
|||||||||||
01.07.2009, 21:41 | 18 | ||||||||||
В твоем случае все просто:
"Расти":
1
|
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
|
|
02.07.2009, 11:07 [ТС] | 19 |
Feuer, и откуда ты такой умный взялся
и чтобыя без тебя делала *SCRATCH*..... P.S. thanks
0
|
02.07.2009, 11:07 | |
02.07.2009, 11:07 | |
Помогаю со студенческими работами здесь
19
Гугл хром делает редирект по клику мышки в любом месте браузера, чаще всего казино Как сделать, чтобы в TextBox не отображался курсор? Как сделать чтобы отображался массив из объектов? Как сделать чтобы лист Excel отображался на форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |