Решение найдено!
Здравствуйте!!
Очень надеюсь на чью-либо помощь. С формами работаю впервые, и что-то совсем никак не получается!
Мне нужно вывести массив (10 на 10) из кнопок, со случайными значениями от 1 до 9. Посчитать сумму всех выпавших значений и вывести результат на форму. Обязательно условие: использование классов и методов.
1. Собственно, массив выводится, но рэндом работает некорректно. Т.е. выдаёт всегда одно и то же число на всех кнопках, или на половину всего поля одно число, наполовину другое. Если поставить точку прерывания и запустить программу, то всё нормально выводится, все числа разные. В чём
может быть проблема? Проблема решена. Спасибо _scorpicora_!!!!
2. Уже ума не приложу, как вывести значение суммы на форму? Т.е. я так понимаю, надо создать метод, который возвращает(?) сумму и добавляет её в текст лейбла? Или вообще не то? На форме создан label с именем (ID) Total_Label. Как сделать, чтоб в нём выводилась сумма? В общем, в классе Level попыталась что-то набросать, но чего-то там не хватает.
Код программы:
http://paste.org.ru/?iyqc5h - код формы (В 25-ой строке тоже никакого результата)
http://paste.org.ru/?gj3x7o - класс Level
http://paste.org.ru/?hvs3d5 - класс Buttons
Очень расчитываю, что кто-нибудь сможет помочь!!!!
P.S. Может кто посоветует учебный материал, примеры и т.д. как работать именно с формами на C#. Всё, что нашла - примеры в консольном приложении, которые не очень помогают.
Здравствуйте!!
Очень надеюсь на чью-либо помощь. С формами работаю впервые, и что-то совсем никак не получается!
Мне нужно вывести массив (10 на 10) из кнопок, со случайными значениями от 1 до 9. Посчитать сумму всех выпавших значений и вывести результат на форму. Обязательно условие: использование классов и методов.
1. Собственно, массив выводится, но рэндом работает некорректно. Т.е. выдаёт всегда одно и то же число на всех кнопках, или на половину всего поля одно число, наполовину другое. Если поставить точку прерывания и запустить программу, то всё нормально выводится, все числа разные. В чём
может быть проблема? Проблема решена. Спасибо _scorpicora_!!!!
2. Уже ума не приложу, как вывести значение суммы на форму? Т.е. я так понимаю, надо создать метод, который возвращает(?) сумму и добавляет её в текст лейбла? Или вообще не то? На форме создан label с именем (ID) Total_Label. Как сделать, чтоб в нём выводилась сумма? В общем, в классе Level попыталась что-то набросать, но чего-то там не хватает.
Код программы:
http://paste.org.ru/?iyqc5h - код формы (В 25-ой строке тоже никакого результата)
http://paste.org.ru/?gj3x7o - класс Level
http://paste.org.ru/?hvs3d5 - класс Buttons
Очень расчитываю, что кто-нибудь сможет помочь!!!!
P.S. Может кто посоветует учебный материал, примеры и т.д. как работать именно с формами на C#. Всё, что нашла - примеры в консольном приложении, которые не очень помогают.
rand = new Random();
в конструктор класса Buttons. Если мне память не изменяет, в таком виде он использует текущее время для инициализации, которое за время между вызовами не успевает измениться. Рекомендую вынести это в класс Level (в CreateLevel или отдельный метод), инициализировать один раз и после этого задавать значения всем кнопкам.
2. Да, именно так. Кстати, считать сумму в конструкторе Buttons тоже некрасиво) Отдельный метод в Level будет значительно лучше.
И еще:
не знаю, что вы хотели сделать строкой
button.Click += new EventHandler(Button2_Click);
Но так делать не надо)
По поводу методов с кнопками. Мне просто надо чтоб при нажатии на кнопку она меняла цвет. И если ещё раз на ту же кнопку нажать, она принимала прежний цвет. Собственно, поэтому так получилось))
Вынесла рэндом в класс Level, результат не изменился. До этого пробовала сделать метод, там тоже самое было. Может, конечно, я что-то не то делаю.
Покажите, что вы сделали.
По поводу методов с кнопками. Мне просто надо чтоб при нажатии на кнопку она меняла цвет.
А! А не проще ли при нажатии на кнопку смотреть, какой у нее цвет сейчас, и в зависимости от этого менять) То есть просто if else использовать.
Пока строчила для Вас код, нашла ошибку, и всё исправилось!! Спасибо!!
По поводу кнопок, честно говоря, начала делать именно так, как Вы предложили, но почему-то вместо else я вдруг решила использовать второй раз if, конечно же ничего не получилось, поэтому и прописала клики. Ещё раз спасибо))) теперь там тоже исправила!!
где sum - соответствующее число.
рекомендую посмотреть cyberforum.ru
там и материалы, и примеры разобраны, и ответы на огромное количество вопросов разной степени сложности.