PaintEventArgsオブジェクトが他で使われるから。
例えばあなたが書いたイベントは次のように呼ばれているかも知れないだろ?

Graphics g = CreateGraphics();
PaintEventArgs arg = new PaintEventArgs(g, this.Bounds);
IntPtr dc = g.GetHdc();
...
if (this.Paint != null)  //Paintイベントに何か入ってるか
   Paint(this, arg);
g.ReleaseHdc(dc); //イベント先で実行されたメソッドでGraphicsがDispose()されてたらエラー
g.Dispose();