//功能是:我希望绘制的图像会随着窗体的大小变化而变化,并且铺满整个窗体。问题是我每次改变窗体大小时,原来绘制的图像还在,而且在上层。但是如果将
窗体最小化或是被其它窗体遮挡,再恢复后就是正常的。我原来想加一句dc.Clear(Color.Black );又会出现参数错误的提示,到底如何改呢?谢谢 代码是这样的:public partial class Form2 : Form
{
Image piccy;
Point[] piccb;
Graphics dc;
public Form2()
{
InitializeComponent();
piccy = Image.FromFile("..\\..\\1\\l.jpg");
this.AutoScrollMinSize = piccy.Size;
piccb = new Point[3];
piccb[0]=new Point (0,0);
piccb[1] = new Point(this.Width , 0);
piccb[2] = new Point(0, this.Height );
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
dc = e.Graphics;
dc.ScaleTransform(1f,1f);
dc.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
dc.DrawImage(piccy, piccb);
}
private void Form2_SizeChanged_1(object sender, EventArgs e)
{
//dc.Clear(Color.Black );
piccb[0] = new Point(0, 0);
piccb[1] = new Point(this.Width, 0);
piccb[2] = new Point(0, this.Height); }
}
窗体最小化或是被其它窗体遮挡,再恢复后就是正常的。我原来想加一句dc.Clear(Color.Black );又会出现参数错误的提示,到底如何改呢?谢谢 代码是这样的:public partial class Form2 : Form
{
Image piccy;
Point[] piccb;
Graphics dc;
public Form2()
{
InitializeComponent();
piccy = Image.FromFile("..\\..\\1\\l.jpg");
this.AutoScrollMinSize = piccy.Size;
piccb = new Point[3];
piccb[0]=new Point (0,0);
piccb[1] = new Point(this.Width , 0);
piccb[2] = new Point(0, this.Height );
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
dc = e.Graphics;
dc.ScaleTransform(1f,1f);
dc.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
dc.DrawImage(piccy, piccb);
}
private void Form2_SizeChanged_1(object sender, EventArgs e)
{
//dc.Clear(Color.Black );
piccb[0] = new Point(0, 0);
piccb[1] = new Point(this.Width, 0);
piccb[2] = new Point(0, this.Height); }
}
解决方案 »
- C#反射获取实体类及引用实体属性和名称
- 帮忙看看这个数据库的访问类是否有问题?
- C# 创建服务后 无效果
- select * from A,B,从这两个表中选择的记录集DataSet,如何访问和使用记录集DataSet中的记录和字段?
- 初学者求救!建立了控制台,建立了几个在不同命名空间的类,如何在Main()中调用其他类中的方法。
- 关于Excel在c#里面不能实例化对象?请求帮助!
- 紧急求助
- 我想在C#中取得当前哪个windows应用程序正在active状态应该怎么做?
- 关于c#中unsafe方法中ref声明局部变量的问提
- 怎么使用mht文件开发接口并调用
- winform的Control加個屬性
- c#不让操作指针指向的内存?
public partial class Form2 : Form
{
Image piccy; public Form2()
{
InitializeComponent();
piccy = Image.FromFile("..\\..\\1\\l.jpg");
this.DoubleBuffered = true;
this.AutoSize = true;
this.AutoScrollMinSize = piccy.Size;
} protected override void OnPaint(PaintEventArgs e)
{
Graphics dc = e.Graphics;
dc.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
dc.DrawImage(piccy, this.ClientRectangle); //<--
} protected override void OnResize(EventArgs e)
{
base.OnResize(e);
this.Invalidate(); //<--
this.Update();
}
几个建议,一是不要缓存Graphic对象,二是窗体(含边框,标题栏)比客户区大,用客户区大小比较合适。
也谢谢tinghai_xu