2.当在base.OnPaint(e)之后调用e.Graphics.DrawImage()方法时,DataGridView全部被图片遮盖,想想这种情况也是必须的。空纳
难道GridView真没有办法绘制背景么?我不太相信,于是再探MSDN(很多人平时根本不看MSDN,遇到问题就求救,这样相当不好),果然发现一个方法斗激没:
protected virtual void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
看名字就很给铅谨力啊,赶紧重写:
protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
{
graphics.DrawImageUnscaledAndClipped(this.BackgroundImage, gridBounds)
}
主窗口:Form1;设置窗体背景:Form2
1)在Form1窗体代码Form1.cs中
public partial class Form1 : Form{
//……
// 增加一个方法 SetBackgroudImage(...)
public void SetBackgroudImage(string imageFileName)
{
this.BackgroundImage = System.Drawing.Image.FromFile(imageFileName)
}
// 点击“背景”按钮
private void button1_Click(object sender, EventArgs e)
{
// 实例化Form2,构造函数见Form2.cs
Form2 f2 = new Form2(this)
f2.Show()
}
}
2)在Form2窗体代码Form2.cs中
public partial class Form2 : Form{
//……
private Form1 f1
//增加一个构造构造函数
public Form2(Form1 f1) : this()
{
this.f1 = 孙粗拿f1
凳乱 }
// 点击“确定则搭”按钮
private void btnOK_Click(object sender, EventArgs e)
{
// 设置Form1背景
f1.SetBackgroudImage("[你选定背景图的文件名]")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)