求教一个问题!

eaqpi 2018-09-28 11:12:10
我自定义了一个控件,其功能类似于 DataGridView,

因为我的数据格式多样和不定列数,所以,每一行都有自带的列头和输入框,用Label和Text 在自定义控件里面做了一行后,

然后再将这个控件放入 另一个自定义控件内组成多行。

也就是相当于,每一行都有一个列头,宽度高度各不相同的DataGridView。每一行内大概一共有30个左右的TextBox和label。

问题在于,当我的行数超过70的时候,就会报 获取句柄错误!

个人估摸着是因为自定义的控件太多了。然后我就动脑子将他改成,只显示窗口大小内的控件,超出窗口外的就不显示。

(窗口内最多能显示10条,我的控件每条数据要占三行,当行不在可见范围内,就删除,进入可见范围就 New一个出来),

然而并没有什么用,来回多拖几次滚动条就 继续上面的错误,获取句柄错误,win32什么的。

这个问题应该如何解决?

还有个小问题时,点击滚动条会触发事件,但是滚动鼠标中键,毫无反应啊啊啊啊!
...全文
602 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
示申○言舌 2019-06-06
  • 打赏
  • 举报
回复
引用 4 楼 eaqpi 的回复:
成功创建了 231 个子控件!! 再多就要继续报错了,准备用画的方法 绘制 Label,并一个textbox 替换大部分的textbox,只有用户点击的时候,弹出textbox让其修改,修改完后直接强行写在界面上!!,

如果让自定义控件的 控件数下降到10个左右,也许可以创建出 500个子控件,这样,基本可以满足输入要求,没有什么人会慢慢地填写500行的数据。。。

根本不需要创建那么多控件。因为在同一个时刻,用户只能对其中的一个单元格进行输入。因此,可以考虑像Excel一样,当用户点击一个单元格时(激活单元格,或者说单元格处于焦点),激活控件允许输入,当单元格失去焦点时,就关闭输入框。因此,原则上你只需要一个控件。
来自故乡的风 2018-10-06
  • 打赏
  • 举报
回复
是不是在删除和new之间转换的时候出了问题?
eaqpi 2018-09-29
  • 打赏
  • 举报
回复
成功创建了 231 个子控件!! 再多就要继续报错了,准备用画的方法 绘制 Label,并一个textbox 替换大部分的textbox,只有用户点击的时候,弹出textbox让其修改,修改完后直接强行写在界面上!!,

如果让自定义控件的 控件数下降到10个左右,也许可以创建出 500个子控件,这样,基本可以满足输入要求,没有什么人会慢慢地填写500行的数据。。。
eaqpi 2018-09-29
  • 打赏
  • 举报
回复
调试画面是没问题,
  • 打赏
  • 举报
回复
在 vs 下开发,就要使用 vs 调试器捕获抛出异常的具体语句,调试异常中断的语句的每一层堆栈的入口方法当时的环境变量,了解异常语句的工作流。假设你花了那么多语言描述现象,而自己贴不出调试画面,这就说明你自己还没有做必要的工作。
  • 打赏
  • 举报
回复
你应该先搞清楚抛出异常具体是哪一行、哪一条语句。不能只说个现象然后就开始猜测。 看一个程序员专业水平,就是看其调试方法和过程。如果贴不出来调试过程,那就还没有学过真正的编程,还是自学编程或者被一些辅导班坑了。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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