Событие Paint, внешние методы
Внутри события Paint я хочу иметь возможность добавлять какие-то методы? что я могу развивать их столько, сколько захочу в другом месте кода.
Некоторое время назад я провел несколько тестов, и это подразумевало PaintEventArgs (я думаю), но я точно не помню, как я это сделал. e(MenuTop) или что-то еще, что я сделал. А с другой стороны, PaintEventArgs MenuTop () или что-то в этом роде. Я много гадал, пока не нашел решение. Вот почему я сейчас прошу о помощи.
void Screen_Paint(object sender, PaintEventArgs e) { //these methods must be rendered in a separate class(this one) MenuTop(); MenuDown(); Background(); Player(); Enemy(); Treasure(); }
Спасибо.
Что я уже пробовал:
........................................................................................................................................- это всего лишь идея.
Eric Lynch
Немного трудно следовать вашей терминологии. По синтаксису (в вашем примере) следующими будут методы (а не классы): MenuTop, MenuDown, Background, Player, Enemy и Treasure. Хотя по названию они больше похожи на классы.
Например, если вы предполагаете, что они будут классами, то в других местах вы обычно создаете их экземпляры, примерно так:
частная MenuTop menuTop = новый MenuTop();
И тогда, возможно, в вашем методе ScreenPaint вы могли бы сделать что-то вроде следующего:
menuTop.Screen_Paint(отправитель, e);
Это предполагает, что вы объявили метод Screen_Paint в классе MenuTop.
Итак, предполагая, что вы ясно понимаете термины, не могли бы вы улучшить свой вопрос, чтобы он использовал правильные термины и соответствующий синтаксис.
Кроме того, если вам неясно различие между классом и методом, я предлагаю вам прочитать немного больше о синтаксисе C# и объектно-ориентированном дизайне в целом, прежде чем пытаться решить эту проблему. В маловероятном случае, если это так, я был бы рад предоставить некоторые ссылки на приличные материалы для чтения.
_Q12_
Я не знаю, почему я написал "классы", но я думал о "методах". Я очень устал. Жалеть об этом. Наверное, я думал о слишком высоком уровне. :) Я исправил ошибку в главном вопросе.
Теперь я сделал тест, и я получил то, что хотел с первой попытки - вау для меня. Но, конечно же, после того, как я посмотрю _again_ на ваш ответ , я тоже увижу решение, данное вами "menuTop.Screen_Paint(sender, e);", так что... Опять же, хорошая работа для вас. :)
--------Пожалуйста, примите решение-------------
Вот такое испытание _working_ :
Sprite cat = новый Спрайт(WindowsFormsApplication2.Свойства.Ресурсы.встань);
MenuTop недействительным(объект отправителя, объект painteventargs е)
{
e.графика.Функция drawImage(кат.Изображения, кот.Прямоугольник);
}
Screen_Paint недействительным(объект отправителя, объект painteventargs е)
{
MenuTop(отправитель, e);
}