当前位置:首页 > 对C#中的TreeView添加背景图

对C#中的TreeView添加背景图

点击次数:1268  更新日期:2010-12-25
\n

在微软的.NET的Forms窗口控件中,比如Treeview和ListView,仅仅是对通用控件的简单封装,因此他们不正常的引发Paint事件。 微软所发布内容中,能看到的唯一建议就是设置控件的ControlStyles.UserPaint类型,然后自己为控件做所有的绘图操作。 (译注:老外提供了一个TreeViewWithPaint控件类,派生自TreeView类,提供了Paint事件的挂接。)

  一、为了解决这个问题,我们在类内部使用了一个基于Bitmap类的Graphics对象。当任何窗口重新定义大小时候,对象都会重建。


\n

//Recreate internal graphics object
protected override void OnResize( System.EventArgs e )
{
 if( internalBitmap == null || internalBitmap.Width != Width || internalBitmap.Height != Height )
 {
  if( Width != 0 && Height != 0 )
  {
   DisposeInternal();
   internalBitmap = new Bitmap( Width, Height );
   internalGraphics = Graphics.FromImage( internalBitmap );
  }
 }
}

\n