下面的代码我放在button的click事件中可以执行但放在窗体的load事件中代码执行但没有出现矩形,为什么,求救???
[code=C#][/code]
  if (richTextBox2.Text.Length > 0)
             {
                 for (int i = 0; i < richTextBox2.Text.Length; i++)
                 {
                     Point pt = richTextBox2.GetPositionFromCharIndex(i);
                     Graphics g = richTextBox2.CreateGraphics();
                     g.DrawRectangle(new Pen(Color.Red, 5), pt.X, pt.Y, 25, 25);
                 }
             }
还有就是grahics类创建的对象起到的是画板的作用还是画笔的作用?不太理解书上说有的是画板有的是画笔。。。  
------解决方案--------------------要FormLoad之后才可以画图,刚才试了一下,FormLoad时画好的图片会被你的控件挡在后面,所以看不到。
Graphics对象就是封装了一堆画图方法的对象,你给它一个pen或brush,告诉他坐标,大小,要画的地方,他就给你画图了。
------解决方案--------------------放到paint事件里。
------解决方案--------------------解决方法:
public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }
       int i = 0;
       PaintEventArgs ex;
       bool isload = false;
       private void Form1_Load(object sender, EventArgs e)
       {
           richTextBox1.Text = "2222";
           ex = new PaintEventArgs(richTextBox1.CreateGraphics(), richTextBox1.ClientRectangle);
           isload = true;
       }
       private void Form1_Paint(object sender, PaintEventArgs e)
       {
           DrawRectangleInt(ex);
           isload = false;
       }
       public void DrawRectangleInt(PaintEventArgs e)
       {
           if (richTextBox1.Text.Length > 0)
           {
               for (int i = 0; i < richTextBox1.Text.Length; i++)
               {
                   Point pt = richTextBox1.GetPositionFromCharIndex(i);
                   //Graphics g = richTextBox1.CreateGraphics();
                   e.Graphics.DrawRectangle(new Pen(Color.Red, 5), pt.X, pt.Y, 25, 25);
               }
               if(isload==true)
               this.Refresh();
           }
       }
   }