c# 中释放打开图片和 子窗体调用父窗体函数
2010-08-29 23:41
330 查看
第一个是 释放打开的图片
目的是把图片在列表中显示(也就是缩略图),然后可以对图片进行修改删除之类的操作。
原本写法 datagridview.rows[0][i].value = new bitmap (filepath);
但是这样文件打开后 会加锁, 无法在程序中 覆盖原来的图片。
查阅了一些资料后
解决方式如下
将打开的bitmap 复制到另一对象中
bitmap bmp = new bitmap(filepath);
bitmap bmp2 = new (bmp.width,bmp.height)
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp, 0, 0);
bmp.dispose();
这样释放掉bmp,使用bmp2 即可。
参考
/article/5183707.html
第二个是子窗体调用父窗体函数问题
大体就是两种 一种是 委托 一种是参数
我采用的是第二种
第一次 在 子窗体form2 定义一个父窗体类型 form1的public 变量 然后form1 中 new form2()
form2.form1 = this
在form2中调用 form1的函数 是有效的 ,但就是 无法在 datagridview 中 插入 图片(一堆 红x ,那个函数正常情况下是 可以的)。
最后 参考下面的博客 换了个 写法 感觉就是增加了 form2中 定义form1 = new form1 (),然后就正常了。
http://heisetoufa.javaeye.com/blog/382684
目的是把图片在列表中显示(也就是缩略图),然后可以对图片进行修改删除之类的操作。
原本写法 datagridview.rows[0][i].value = new bitmap (filepath);
但是这样文件打开后 会加锁, 无法在程序中 覆盖原来的图片。
查阅了一些资料后
解决方式如下
将打开的bitmap 复制到另一对象中
bitmap bmp = new bitmap(filepath);
bitmap bmp2 = new (bmp.width,bmp.height)
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp, 0, 0);
bmp.dispose();
这样释放掉bmp,使用bmp2 即可。
参考
/article/5183707.html
第二个是子窗体调用父窗体函数问题
大体就是两种 一种是 委托 一种是参数
我采用的是第二种
第一次 在 子窗体form2 定义一个父窗体类型 form1的public 变量 然后form1 中 new form2()
form2.form1 = this
在form2中调用 form1的函数 是有效的 ,但就是 无法在 datagridview 中 插入 图片(一堆 红x ,那个函数正常情况下是 可以的)。
最后 参考下面的博客 换了个 写法 感觉就是增加了 form2中 定义form1 = new form1 (),然后就正常了。
http://heisetoufa.javaeye.com/blog/382684
相关文章推荐
- c# winform 子窗体更新父窗体,调用父窗体的函数
- c# winform 子窗体更新父窗体,调用父窗体的函数
- C#调用Windows图片和传真查看器打开图片
- webbrowser 里的js调用C#窗体的函数
- C# 调用画图工具打开图片
- C#利用接口实现窗体间函数调用
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- C# 窗体边角圆弧处理及在C#中调用外部程序(执行批处理,打开窗口等)
- C# Winform 反射调用打开窗体
- 【转】C# 子窗体如何调用父窗体的方法
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- C# 打开子窗体(from2),如何关闭父窗体(from1)
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- C#调用电脑的默认图片浏览器软件打开图片
- C#调用子窗体后关闭自身(父窗体)
- C#调用Windows图片和传真查看器打开图片
- C#----子窗体调用子窗体,但调用的子窗体仍属于父窗体
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- c#调用其他窗体中的变量或函数
- 【转】C#调用Windows图片和传真查看器打开图片