Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Залипание/отлипание" кнопки 
:(
    Опции темы
Snatch
Дата 22.11.2006, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



Доброго времени суток!
На форме имеется кнопка и есть 2 события (например, событие_1 и событие_2).

Для понятия вопроса: В чате NetworkAssistant есть кнопки "вкл/выкл звук", "поверх всех окон/обычно" и что-то еще.

Вопрос: как сделать, что бы при нажатии на кнопку она оставалась "утопленной"/нажатой (срабатывает событие_1), а при вовторном нажатии на нее она возвращалась в свое изначальное положение (срабатывает событие_2 [отмена события_1])? (чекБокс не очень красиво)
PM MAIL ICQ   Вверх
ivashkanet
Дата 22.11.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Цитата(Snatch @  22.11.2006,  07:48 Найти цитируемый пост)
чекБокс не очень красиво

И всетаки это CheckBox smile
У которого свойство Appearance = Button  smile 
PM MAIL WWW ICQ   Вверх
Snatch
Дата 23.11.2006, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



Удивительно но факт smile Никогда бы не подумал, что чекБокс можно сделать "чекБутоном"..
Спасибо ivashkanet, все получилось, только возникли пару вопросиков:
1) как сделать на этом "чекБутоне" 2 разных картинки (картинка_1 - при отжатой кнопке, картинка_2 - при нажатой)?

2) можно ли уменьшить размеры самого "чекБутона" (по вертикали и по горизонтали)? В свойствах имеются поля Width и Hight, но меньше установленных по умолчанию они не делаются smile

Заранее спасибо
PM MAIL ICQ   Вверх
ivashkanet
Дата 23.11.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



1) 
Код

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox checkBox = (CheckBox)sender;
            if (checkBox.Checked) checkBox.Image = Properties.Resources.My1000;
            else checkBox.Image = Properties.Resources.Medved;
        }

2) В свойствах убери AutoSize = true.
PM MAIL WWW ICQ   Вверх
Snatch
Дата 24.11.2006, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



1) Пока что не разобрался. Показал нашему программеру, он сказал, что какой-то странный код... Будем разбираться
2) Не заметил сразу, да и вчера пришлось пару раз просматривать все свойства, что бы найти smile
PM MAIL ICQ   Вверх
ivashkanet
Дата 24.11.2006, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Цитата(Snatch @  24.11.2006,  05:28 Найти цитируемый пост)
Показал нашему программеру, он сказал, что какой-то странный код...

 smile В каком месте странный?

Все просто:
Код

CheckBox checkBox = (CheckBox)sender;

Получаем тот чекбокс на который кликнули (класс, который сгенерировал событие всегда передается в переменной sender).
Код

if (checkBox.Checked) checkBox.Image = Properties.Resources.My1000;

Если чекбокс, после нажатия на него, стал нажатым (checkBox.Checked == true), то ставим картинку нажатого состояния.
Код

else checkBox.Image = Properties.Resources.Medved;

Если нет, то отжатого.
Snatch, ты не смотри, что у меня медведы разные на картинках smile Просто это первые картинки которые попались под руку.
Я их загнал в ресурсы (Properties.Resources) поэтому оттуда их и беру. Ты можешь загнать их куда угодно, хоть каждый раз из файла считывать  smile 
PM MAIL WWW ICQ   Вверх
Snatch
Дата 24.11.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.11.2006
Где: РФ/Омск

Репутация: нет
Всего: нет



Странный... ну он (программер) немного по своему (я его не понял) делает данную операцию.

Код

else checkBox.Image = Properties.Resources.Medved;

Медведа я сразу заметил при беглом осмотре.
Добавил в ресурсы (Resourses) папку test, в которую добаил 2 файла (графика), пробовал вызывать: 
Код

else checkBox.Image = Properties.Resources.test.image1;

image1 - файлик image1.gif добавлял через Add в самой студии, студия ругается на test (не пробовал добавить в корень (Resoures)!). Смотрел как делал наш программер, он писал (на сколько я помню):
Код

Resources.image1.gif


Сам принцип я понял, так что не надобыло расписвывать все smile

З.Ы.: я начинающий, больно не бить
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.