| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Button работающий как CheckBox |
| Автор: Экскалупатор 6.4.2011, 13:38 |
| всем привет. есть такая проблема, надо сделать кнопку работающую как CheckBox, т.е. при нажатии кнопка должна оставаться нажатой, если нажать еще раз то должна "отжиматься". использовать CheckBox в стиле Button нельзя, нужна именно кнопка. как это лучше сделать? |
| Автор: -Mikle- 6.4.2011, 13:54 |
Уточняю просто, ты про WinForm? Если да, то кроме как сделать наследника, добавить нужные мемберы и перегрузить рисование, пока ничего в голову не приходит. На сколько помню, в фреймворке есть готовые методы, которые рисуют кнопку в любом состоянии. То есть тут просто понадобится переделать в каком состоянии и когда должно нарисоваться, а не рисовать всю кнопку заново. |
| Автор: Экскалупатор 6.4.2011, 14:13 |
да, в нем. на счет перерисовать это понятно, тоже эта мысль сразу в голову пришла, но может есть вариант как то выкрутиться по другому... |
| Автор: Rohoss 6.4.2011, 14:52 |
| А если попробовать захостить WPF контрол? |
| Автор: Экскалупатор 6.4.2011, 14:54 |
| Rohoss, .net 2.0 WinForm никаких WPF |
| Автор: jonie 6.4.2011, 15:18 |
| Штука зовется PushButton. Пример: http://www.codeproject.com/KB/buttons/bitmapbutton.aspx ну и вообще гугл |
| Автор: Экскалупатор 6.4.2011, 16:21 |
| jonie, круто, я не знал. а гугл что то отказался со мной сотрудничать... подскажите еще как задать стиль чему то, а то у меня ругается во время выполнениея: Visual Styles-related operation resulted in an error because no visual style is currently active. типа нет выбранного стиля, а куда где его выбрать что то не могу дорубить. |
| Автор: diadiavova 6.4.2011, 19:23 |
А можно узнать почему? Интересно просто. |
| Автор: Экскалупатор 6.4.2011, 23:57 |
в спецификации написано кнопка, руководитель проекта требует что бы была кнопка. |
| Автор: Экскалупатор 7.4.2011, 08:37 |
| diadiavova, ))) ага, я тоже так сказал, но должна быть кнопка. может кто составлял спецификацию не знал что чек бокс может быть в виде кнопки, но сейчас это уже не известно. хотя после того как я показал что таки можно чекбокс превратить в кнопку и добавил что так логичнее(потому как у него уже есть требуемые свойства, типа cheked и пр) со мной вроде согласились... |
| Автор: diadiavova 7.4.2011, 08:45 | ||
А как в спецификации это написано? Если там просто написано кнопка, то чекбокс вполне подходит под это определение, вот если бы там было написано, что нужен экземпляр класса Button или его наследника - тогда да. |
| Автор: Экскалупатор 7.4.2011, 08:51 | ||
хм. ну в таком случае я бы даже не предлагал другие варианты написано "кнопка", но тут еще есть руководитель проекта, для меня решает он, если он скажет что чек бокс покатит то сделаю чекбокс. вообще несомненно странное требование. |
| Автор: diadiavova 7.4.2011, 08:56 |
Даже более чем: требовать ручной реализации функциональности стандартного контрола ... |
| Автор: Fitc 7.4.2011, 08:59 |
| Попробуйте бесплатные компоненты ComponentFactory там должна быть такая кнопка |