We can't just solve every problem for you!
You haven't appeared to implement a board, which you need to do in order to do this task, as well as the last one:
C# simple chess error[
^]
I would strongly suggest that you approach this by creating an abstract Piece class which has a location, and a "side" (Black or White) and a Board class that encapsulates a 2D array of Piece instances.
Then declare your Pawn class as a Piece, your Rook as a Piece, and so on.
You can then start delegating tasks to the classes.
By adding an abstract ShowMoves method to the Piece class and passing it a Board you can get the actual piece to generate the legal moves from its current position - and use that to generate a "map" of where to draw red squares.
Similarly, you delegate the Paint task to the Board - passing it the graphics context - and it delegates actual piece painting to the Piece class through another abstract method.
What you appear to be doing at the moment is jumping into code without actually planning what you need - and that doesn't generate a good, solid application at the end, it generates a hard-to-maintain mess that is riddled with bugs.