|
22 / 22 / 8
Регистрация: 17.11.2012
Сообщений: 124
|
|||||||||||
Назначить кнопке фоновый рисунок в зависимости от значения массива18.11.2012, 01:36. Показов 1265. Ответов 12
Метки нет (Все метки)
В общем упрощенно суть проблемы такова:
Необходимо ее реализовать что-то вроде:
Метод "Check()" в свою очередь сравнивает значение соответствующей ячейки в массиве "MD" и передает через переменную "y" строку "ShahMat.Properties.Resources.PBC" или строку "ShahMat.Properties.Resources.PCC". После чего обработчик события изменяет задний фон кнопки на переданный. PBC и PCC это имена графических файлов с расширением png, лежащие в папке Resources проекта. Уверен что суть проблемы мое плохое знание самого языка C#, поэтому и обращаюсь на форум. Естественно перед этим я немало "экспериментировал", но чет "оживить" второй способ не получилось(. Добавлено через 11 часов 30 минут Что-то 60 просмотров, а ответа нет. Да я в принципе без претензий, реализовал же по первому способу, работает. Вот только прога раза в три больше строк имеет. Я тут пишу игрулю шахматы. И в ней игровое поле состоит из 64 кнопок, выполняющих роль клеток. В данный момент большая часть фигур уже прописаны (знают куда и как могут ходить). Но строк в коде больше 6 000. Если бы можно было реализовать по второму способу это бы существенно сократило код. Учитывая, что написана (без учета ИИ - его еще нет, а он я предполагаю тоже не мало потянет) процентов так на 70, то код довльно громоздкий для игры скромного формата. Кого заинтересует могу скинуть исходник на мыло в том виде в каком сейчас есть (запускается, корректно работает, по мере написания проверяю функциональность, код с подробными комментариями). Прогу решил написать, чтобы поупражнятся в логике и составлении алгоритмов. Мне вот просто интересно, я глупость спросил и второй способ вообще не возможен, или же возможен, но никто из просмотревших не сталкивался с такой задачей и поэтому не знает каким образом реализовать?
0
|
|||||||||||
| 18.11.2012, 01:36 | |
|
Ответы с готовыми решениями:
12
Каждой кнопке из массива назначить определённое действие Как на фоновый рисунок наложить второй рисунок По клику по кнопке отображать / скрывать таблицу, в зависимости от значения кнопки. |
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
||||||
| 18.11.2012, 19:40 | ||||||
|
А так?
1
|
||||||
|
22 / 22 / 8
Регистрация: 17.11.2012
Сообщений: 124
|
||||||
| 18.11.2012, 20:16 [ТС] | ||||||
|
Создал отдельный проект для эксперимента, по максимуму упростил:
Но компилироваться отказывается. Выдает следующее: error CS0117: 'TestExp.Form1' does not contain a definition for 'Properties' Отдельное спасибо за участие, но пока чтот не реализуется.
0
|
||||||
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
||||||
| 18.11.2012, 20:28 | ||||||
0
|
||||||
|
22 / 22 / 8
Регистрация: 17.11.2012
Сообщений: 124
|
|
| 18.11.2012, 21:23 [ТС] | |
|
Каюсь, вы правы.
Но теперь подчеркивает Check, и выдает следующее: error CS0161: 'TestExp.Form1.Check()': not all code paths return a value ..не все части кода возвращают значение. Я что то опять не так делаю?
0
|
|
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
||||||
| 18.11.2012, 21:45 | ||||||
|
Это из-за if, если у вас других значений не бывает, кроме зафиксированных в if-ах, просто подставьте:
0
|
||||||
|
22 / 22 / 8
Регистрация: 17.11.2012
Сообщений: 124
|
|||||||||||
| 18.11.2012, 23:21 [ТС] | |||||||||||
|
Да. Так действительно заработало. Благодарю за пощь. Принимает больше значений, но я думаю выкручусь. Если получится потом выложу чуть усложненный вариант, но все равно я думаю код значительно сократится.
Добавлено через 32 минуты Вот вариант для большего количества значений переменной.
Добавлено через 48 минут Я похоже сразу не понял... Достаточно одного else. Так будет правильнее и изящнее:
0
|
|||||||||||
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
| 19.11.2012, 09:11 | |
|
Лучше через switch сделать, тогда будет еще изящнее!
0
|
|
|
22 / 22 / 8
Регистрация: 17.11.2012
Сообщений: 124
|
|
| 19.11.2012, 10:15 [ТС] | |
|
Точно. А возможность принятия нежелательных значений исключить путем их "отсеивания" в вызывающем методе.
0
|
|
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
||
| 19.11.2012, 10:46 | ||
"Он мог бы прямо на митингах деньги зарабатывать, - мутно мечтал пес, - первоклассный деляга"
0
|
||
|
22 / 22 / 8
Регистрация: 17.11.2012
Сообщений: 124
|
|||||||||||
| 19.11.2012, 11:46 [ТС] | |||||||||||
|
Имел ввиду вот это:
Здесь метод Recursor() обеспечивает корректную работу программы. Добавлено через 10 минут Хотя можно было проще:
0
|
|||||||||||
| 20.11.2012, 11:36 | |
|
Не по теме: Да я понял что ты имел ввиду)) Удачи в познании:senor:.
0
|
|
|
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
|
|
| 21.11.2012, 13:35 | |
|
Открою тебе глаза: есть еще такая штука как привязка данных. Создаете List изображений, на него создаете простой BindingSource. для "волшебной" кнопки вместо имаджа указываете объект BindingSource.
На все кнопки для изменения изображения делаете один ОБЩИЙ метод, который просто меняет значение (объект BindingSource).Current - и изображение меняется само собой без лишних телодвижений. Описание BindingSource
0
|
|
| 21.11.2012, 13:35 | |
|
Помогаю со студенческими работами здесь
13
Присвоение ячейке значения, в зависимости от того, в какой области будет находиться рисунок Фоновый рисунок Фоновый рисунок Фоновый рисунок QT Фоновый рисунок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|