c# 创建窗口句柄时出错,循环70次就会出现“窗体句柄创建失败”求方法

qq_32320747 2018-05-02 06:52:39
 private void dgv2_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (this.dgv2.RowCount > 0)
{
try
{
for (int i = 0; i < this.dgv2.SelectedRows.Count; i++)
{
string vc_bgkid = DataConverter.EyeNull(this.dgv2.SelectedRows[i].Cells["vcbgkid2"].Value);
int yes = DataConverter.ToInt(this.dgv2.SelectedRows[i].Cells["yes2"].Value);
FrmChronicDisease frm = new FrmChronicDisease();
frm.vc_bgkid = vc_bgkid;
ThisHQ.Business.FormShare.VerifyThis(frm);
frm.ShowDialog();
this.dgv2.SelectedRows[i].Cells["yes2"].Value = 1;
frm.Dispose();
}

}
catch (Exception ex)
{
ThisHQ.Base.Base.SuMsg(ex.Message);
}
}
}
...全文
1024 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyy1111111 2018-05-09
  • 打赏
  • 举报
回复
是不是你的控件加的太多了,可以设置不用的visable为false
xian_wwq 2018-05-03
  • 打赏
  • 举报
回复
句柄是系统的稀缺资源,要省着用,否则很快就用光了 如果不修改默认配置, windows系统可用的句柄一共是 512-3 个
  • 打赏
  • 举报
回复
每一个对象要占用一个句柄,句柄是windows系统控制的,通过系统API调用。 所以多控件窗体反复创建占满系统资源导致句柄创建失败很正常。 你要问到底,就去看看windowsAPI的相关知识吧。
qq_32320747 2018-05-03
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
那你知道创建一个窗体需要多少内存吗?
我不知道,但是昨天我移除其他的控件就可以1000条但是今天还是一样的代码又是70条。。。
xuzuning 2018-05-02
  • 打赏
  • 举报
回复
那你知道创建一个窗体需要多少内存吗?
xuzuning 2018-05-02
  • 打赏
  • 举报
回复
刚 frm.ShowDialog(); 就 frm.Dispose(); 你这是打算干什么?
qq_32320747 2018-05-02
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
刚 frm.ShowDialog(); 就 frm.Dispose(); 你这是打算干什么?
忘记注释了,代码里面注释了,之前我看到别人说要Dispose,我试了一下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧