首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教关于控件的重绘有关问题~

2012-01-06 
请问关于控件的重绘问题~急啊我在使用label控件和button控件的时候,想用button空间调用label的重画,郁闷的

请问关于控件的重绘问题~急啊
我在使用label控件和button控件的时候,想用button空间调用label的重画,郁闷的是怎么都重画不了,不知道是怎么回事,我知道是用refresh()方法,请问能帮个忙说具体点么?

比如说:

  private void labGround_Paint(object sender, PaintEventArgs e)
  {
  int i, j;
  Brick brk=new Brick();
  Graphics gp = e.Graphics;
  SolidBrush brush = new SolidBrush(Color.Beige);
   
  //重绘全场
   
  for (i = 0; i < 10; i++)
  {
  for (j = 0; j < 20; j++)
  {
  if (brk.Ground[i, j] != 0)
  gp.FillRectangle(brush, i * 20, j * 20, 20, 20);
  }
  }
   
   
   
  }

怎么在一个button里面重绘?
麻烦了,谢谢~我用的比如简单的……
 private void btnStart_Click(object sender, EventArgs e)
  {
  int i, j;
  Brick brk = new Brick();
  for (i = 0; i < 10; i++)
  {
  for (j = 0; j < 20; j++)
  { brk.Ground[i, j] = 1; }
  }
   
  labGround.Update();
  labGround.Refresh(); <===这三种里面怎么一种都没用啊~?
  labGround.Invalidate(); 我都郁闷死了!
   
  }


各位大哥帮帮忙~~

[解决办法]
调用Invalidate()及Refresh()都是可以的。
[解决办法]
Refresh()就是重绘,你感觉没有重绘是因为没有重写Onpaint()事件.

C# code
public class myLabel:Label{protected override void OnPaint(PaintEventArgs e){//画你想画的东西                /*System.Drawing.Graphics g=e.Graphics;                Color c=SystemColors.ControlLight;                Pen p=new Pen(c,1);                g.DrawLine(p,0,0,0,this.Height);*/} 

热点排行