今天热门
热点:

GDI+问题,gdi问题


private void button3_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            FontFamily arialFamily = new FontFamily("Arial");
            Font arialFont = new Font(arialFamily, 16);
            StringFormat strFormat1 = new StringFormat();
            strFormat1.Alignment = StringAlignment.Center;
            strFormat1.Trimming = StringTrimming.EllipsisCharacter;
            strFormat1.LineAlignment = StringAlignment.Near;
            string str = "iiii";
            Rectangle rect1 = new Rectangle(10, 200, 20, 20);
            g.DrawString(str, arialFont, new SolidBrush(Color.Red), rect1, strFormat1);
        }

我上面在窗体上面写了"iiii",当窗体被隐藏后再显示出来,写上的字就不见了,请问这个问题该如何解决?

解决方案

有两个方法可以解决:
1:建立一个临时Bitmap,然后把要绘的内容都绘到这个Bitmap上,然后在button3_Click及Paint事件里绘这个Bitmap就是了。

2:把你绘制的信息保存到内存中,然后在Paint事件里由保存的信息再绘制出来。

在Paint事件画
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

比如你可以用如下代码来绘制:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DoubleBufferDraw
{
public partial class Other : Form
{
FontFamily arialFamily = new FontFamily("Arial");
Font arialFont;
StringFormat strFormat1 = new StringFormat();
Rectangle rect1 = new Rectangle(10, 200, 20, 20);
string str = null;
public Other()
{
InitializeComponent();
strFormat1.Alignment = StringAlignment.Center;
strFormat1.Trimming = StringTrimming.EllipsisCharacter;
strFormat1.LineAlignment = StringAlignment.Near;
arialFont = new Font(arialFamily, 16);
}

private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
str = "iiii";
g.DrawString(str, arialFont, new SolidBrush(Color.Red), rect1, strFormat1);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawString(str, arialFont, new SolidBrush(Color.Red), rect1, strFormat1);
}
}
}

越是底层的东西,耗资源越少吧

www.zrccd.nettrue/topics/20230304/774349.htmlTechArticleGDI+问题,gdi问题 privatevoidbutton3_Click(objectsender,EventArgse) { Graphicsg=this.CreateGraphics(); FontFamilyarialFamily=newFontFamily("Arial"); FontarialFont=newFont(arialFamily,16); StringFormatstrFormat1=newStringFormat(); strFo...

相关文章

    暂无相关文章

用户评论

大家都在看