| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Форма кнопок |
| Автор: PashaSem 13.5.2006, 23:35 |
| Всем Привет! Подскажите как сделать обычную кнопку круглой или триугольной. Спасибо! |
| Автор: Ch0bits 14.5.2006, 09:09 |
| Нарисовать кнопку самому. |
| Автор: mr.DUDA 14.5.2006, 09:56 |
| Назначить кнопке background-картинку с прозрачностью, вот и всё. Если ещё хочется чтобы и нажималась кнопка только внутри круга/треугольника - нужно наследоваться от Button и перекрывать WndProc. |
| Автор: PashaSem 14.5.2006, 23:48 |
| Я обыную фигуру нарисовать смогу. Но как сделать чтою она имела все те же свойства что и обычная кнопка? button1 system.Windows.Forms.Button Там картинку подставить или цвет поменять. Если кто знает подскажите или ссылку кинте где прочитать можно. |
| Автор: mr.DUDA 15.5.2006, 10:29 | ||
Можно и так. Но тогда такую кнопку можно использовать только на той форме, где объявлен обработчик Paint. PashaSem, вот тут неплохая кнопка: http://www.codeproject.com/cs/miscctrl/XCtrls.asp |
| Автор: PashaSem 15.5.2006, 16:53 |
| microsoft предлагает такое решение с помощью регионов http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.region.aspx# The following code example demonstrates how to use the Region property by creating a round button. To run the example, paste the following code in a form containing a button called roundButton. This example requires that the Paint event is connected to the event handler defined in the example. Я только учусь и вопрос может показаться глупым Если я хочу чтобы на форме Form1 при загрузке была круглая кнопка вствляю код по ссылке. Вопрос поскольу event handler у меня Form1 как мне присоеденить к ней Paint event ? Спасибо |
| Автор: mr.DUDA 15.5.2006, 18:52 |
| В свойствах формы на закладке Events выбрать из комбобокса около Paint метод, на который нужно повесить событие. |
| Автор: lioness 20.11.2006, 19:18 |
| Я посмотрела примеры, но что-то они сложные очень. А у Charles-а Petzold-а что-то совсем просто: нарисовал эллипсоидную кнопку и больше ничего не объяснял. Где бы мне еще посмотреть... Нужно всего-то их мне штук шесть на одной форме одинаковых, одна за другой, но красивых, трехмерных, нажимающихся ... Только состояние у них будет меняться: нейтральное, нажатое, отжатое, отработанное. |
| Автор: mr.DUDA 21.11.2006, 11:50 |
| lioness, на кодпрожекте их полным-полно, искать по слову aqua button |
| Автор: lioness 23.11.2006, 12:04 |
| Действительно, аква батончики есть просто симпомпончики Интересно, на исходном примере все шесть разноцветных сразу видны на форме, как только их приплюсовываешь к Controls. А когда я сделала одну на своей форме, то она работает, меняет цвет и подмаргивает, всё как надо, но после this.Controls.Add(aquabutton1) я у себя в дизайнере их не вижу. Вручную редактирую properties и events и можно, конечно, наплевать и так оставить. Но интересно, отчего бы так? На исходном примере все строки комментариями отключила. Кроме new для первой аква кнопки. И после add она тут же появляется на форме в дизайнере. А у меня вроде бы тоже так же, но НЕ появляется. Интересно, что когда экспериментировала на простом примере - то кнопки в дизайнере не появлялись. А когда стала заменять свою обычную кнопку на новую AquaButton, то распрекрасно вижу новую красивую кнопку и её properties в дизайнере, могу кнопку таскать по полю, изменять размер и т.д. и т.п. Если уберу "this.Controls.Add(...)", то кнопка, естественно, исчезает. Почему эта строка не срабатывала на простом примере - так и осталось невыясненным. |