Я хочу вызвать событие paint, когда я нажму кнопку. У меня есть следующее:C# - вызов обработчика события рисования
private void btnDrawMap_Click(object sender, EventArgs e)
{
rows = Convert.ToInt32(this.numRows);
cols = Convert.ToInt32(this.numCols);
defineCellWallsList();
defineCellPositionsList();
pictureBox1_Paint_1;
}
Я не думаю, что вы можете так назвать. Все pictureBox1_Paint_1
делает:
private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
myGameForm.drawMap(e, mapCellWallList, mapCellPositionList);
}
Так что, если я могу назвать myGameForm.drawMap
вместо этого, это было бы хорошо. Что:
public void drawMap(PaintEventArgs e, List<List<int>> walls, List<List<int>> positions)
{
// Create a local version of the graphics object for the PictureBox.
Graphics g = e.Graphics;
// Loop through mapCellArray.
for (int i = 0; i < walls.Count; i++)
{
int[] mapData = getMapData(i, walls, positions);
int column = mapData[0];
int row = mapData[1];
int right = mapData[2];
int bottom = mapData[3];
g.DrawLine(setPen(right), column + squareSize, row, column + squareSize, row + squareSize);
g.DrawLine(setPen(bottom), column + squareSize, row + squareSize, column, row + squareSize);
}
drawMapEdges(e, walls, positions);
}
Это требует paintEventArg
и btnDrawMap_Click
требует eventArg, поэтому я изменил параметр btnDrawMap_Click
eventArg в paintEventArg, однако он имеет ошибку о том, что btnDrawMap_Click
не перегруженный метод, который принимает EventHandler.
Любая помощь приветствуется, спасибо.
Спасибо! Работает как шарм. – user2602079