.net C#中的datagridview怎么添加背景图片,是在winform中的

.net C#中的datagridview怎么添加背景图片,是在winform中的,第1张

1.当在base.OnPaint(e)之前调用e.Graphics.DrawImage()方法时,数据行的部分是透明的,但是背景部分仍是原来的颜色;

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("[你选定背景图的文件名]")

     }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11994125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存