如何將GDI+畫出來的圖直接在pictureBOX中顯出來!
private void draw()
{
Bitmap bm=new Bitmap(this.ptbView.Width,this.ptbView.Height);
Graphics g = Graphics.FromImage(bm);
//定義畫圖對像
// Graphics g = this.ptbView.CreateGraphics ();
//字體
Font teFont = this.Font ;
//畫圖方式
StringFormat sFormat = new StringFormat(StringFormatFlags.DirectionRightToLeft);
int k = 0;
//畫表頭及主題
for(int i = 0;i<3;i++)
{
int lenth = 18*(i+1)+50+k;
g.DrawString (oDs.Rows[i][0].ToString() ,headFont,Brushes.Black,30 ,18*(i+1)+50+k);
g.DrawString(oDs.Columns[0].ToString(),headFont,Brushes.Blue,30,0);
if(oDs.Rows[i][1].ToString().Length>17)
{
g.DrawString (oDs.Rows[i][1].ToString().Substring(0,17) ,headFont,Brushes.Black,180 ,18*(i+1)+50+k);
g.DrawString(oDs.Columns[1].ToString(),headFont,Brushes.Blue,180,0);
string srows=oDs.Rows[i][1].ToString().Substring(18);
g.DrawString(srows,headFont,Brushes.Black,180,18*(i+1)+65+k);
k = 18*(i+1);
}
else
{
g.DrawString (oDs.Rows[i][1].ToString() ,headFont,Brushes.Black,180 ,18*(i+1)+50);
g.DrawString(oDs.Columns[1].ToString(),headFont,Brushes.Blue,180,0);
k = 0;
}
g.DrawString (oDs.Rows[i][2].ToString() ,headFont,Brushes.Black,410 ,lenth,sFormat);
g.DrawString(oDs.Columns[2].ToString(),headFont,Brushes.Blue,410,0);
g.DrawString (oDs.Rows[i][3].ToString() ,headFont,Brushes.Black,490 ,lenth,sFormat);
g.DrawString(oDs.Columns[3].ToString(),headFont,Brushes.Blue,490,0);
g.DrawString (oDs.Rows[i][4].ToString() ,headFont,Brushes.Black,570 ,lenth,sFormat);
g.DrawString(oDs.Columns[4].ToString(),headFont,Brushes.Blue,570,0);
}
//回收資源
bm.Dispose();
g.Dispose();
}
问题点数:20、回复次数:1Top
1 楼FlashElf(銘龘鶽)回复于 2004-12-04 19:06:54 得分 20
//回收資源
bm.Dispose();
g.Dispose();
//改成下面的样子(不要释放你的 bitmap 对象,。)
if (pictureBox1.Image!=null)
{
Image img = pictureBox1.Image;
pictureBox1.Image=null;
img.Dispose();
}
pictureBox1.Image=bm;
g.Dispose;
Top




