在父窗体中打开一个子窗体后,最大化此子窗体。无问题,此时再打开一个子窗体就报错,执行到form.show()是 提示“创建窗口句柄时出错”。
解决方案 »
- 【C#】datagridview的问题,高手进!
- Lable添加图片问题
- 用MailMessage发送邮件,其中from地址是smtp方的邮件地址,该地址在接收方显示的位置是在主题的前面。请问在C#程序中用什么办法将这个位置上换成其它的邮箱地址,而不是smtp方的邮箱地址?
- 想断掉这个疑惑,期待着大家的指点。
- 求together 2006 for vs2005的注册机
- vs2003打包问题,我把我的程序的打包文件依赖项的dll打进包 为什么安装时还提示要.net framwork
- 请问如何在dataview中如果没有任何信息使label1.visible=true?
- 从面向过程到面向对象编程
- 怎样设置文件标题?
- C#winform中如何上传文件
- c#中获取excel中的数据需要的命名空间是什么
- 小弟不才,想问一个问题,实在是对基础知识掌握的不扎实
Form form = new Form();
form.MdiParent = this;
form.Show();请楼主将你打开子窗体的代码公布下,看下是否是代码上的问题
CI.MdiParent = (Form)this.ParentForm;
CI.StartPosition = FormStartPosition.CenterScreen;
CI.Show();这是我的代码,获取的父窗体都没问题,
注意我说的是我把子窗体最大化后,再打开另外的子窗体,执行到CI.show()提示“创建窗口句柄时出错”。
有可能我前面执行了一段窗口重绘的代码,会不会造成这个问题
代码如下
public static void AutoScale(Form frm)
{
frm.Tag = frm.Width.ToString() + "," + frm.Height.ToString();
frm.SizeChanged += new EventHandler(frm_SizeChanged);
} static void frm_SizeChanged(object sender, EventArgs e)
{
string[] tmp = ((Form)sender).Tag.ToString().Split(',');
float width = (float)((Form)sender).Width / (float)Convert.ToInt16(tmp[0]);
float heigth = (float)((Form)sender).Height / (float)Convert.ToInt16(tmp[1]); ((Form)sender).Tag = ((Form)sender).Width.ToString() + "," + ((Form)sender).Height; foreach (Control control in ((Form)sender).Controls)
{
control.Scale(new SizeF(width, heigth)); }
}