请问tabcontrol第一次点击后面的tabpage发生了什么?

问题描述

我用一个单独线程通过control.invoke修改tabpag2中的控件,tabcontrol默认显示page1,如果invoke之前点击过tabpage2,一切正常而如果主窗口打开后我什麽也不干,则整个ui在单独线程执行到invoke后就卡死了请问这是为什么啊?

解决方案

解决方案二:
因为里面其实还什么都没有
解决方案三:
invoke是同步方式改成begininvork试试
解决方案四:
主菜单分析->性能诊断->按你的说法让它卡死一会,然后看分析报告,最长的那一条一般是卡死的原因如果你帖出来invoke里干了什么也许能更容易分析一些
解决方案五:
引用1楼Z65443344的回复:

因为里面其实还什么都没有

什么叫有和没有呢?
解决方案六:
引用3楼phommy的回复:

主菜单分析->性能诊断->按你的说法让它卡死一会,然后看分析报告,最长的那一条一般是卡死的原因如果你帖出来invoke里干了什么也许能更容易分析一些

比如这个privatevoidSetImageIndexTreeNode(TreeNodetn,intindex){if(tn.TreeView.InvokeRequired){SetImageIndexTreeNodeCallBackcb=SetImageIndexTreeNode;Invoke(cb,newobject[]{tn,index});}else{tn.ImageIndex=index;tn.SelectedImageIndex=index;}}
解决方案七:
就是说,tabpage里的控件只存在于后台,根本还没有绘制进tabpage里去
解决方案八:
你可以试试获取tabpage2的宽和高,保证是0,0
解决方案九:
如果你的tabpage只是用来显示数据,而且很多时候它根本都不显示,那么就不应该在线程里直接对UI进行操作,这样没有意义你应该将线程产生的数据先写入全局变量里,然后在timer里定时更新,这时候可以判断当前显示的是哪个page,不显示的根本不去更新它
解决方案十:
引用2楼Z65443344的回复:

invoke是同步方式改成begininvork试试

引用6楼Z65443344的回复:

就是说,tabpage里的控件只存在于后台,根本还没有绘制进tabpage里去

控件只有绘制了才能算是存在吗?怎么感觉应该是一直在那里,绘制只是显示一个画面而已
解决方案十一:
引用8楼Z65443344的回复:

如果你的tabpage只是用来显示数据,而且很多时候它根本都不显示,那么就不应该在线程里直接对UI进行操作,这样没有意义你应该将线程产生的数据先写入全局变量里,然后在timer里定时更新,这时候可以判断当前显示的是哪个page,不显示的根本不去更新它

不实时跟新的话,在tab切换的时候又会很麻烦啊。
解决方案十二:
所谓"实时"什么是实时?从线程产生数据,到invork更新到界面上,还有时间差呢反正就是人眼看,更新的再快看的清楚?用个timer每秒更新一次足够看了.嫌慢100ms更新一次
解决方案十三:
引用11楼Z65443344的回复:

所谓"实时"什么是实时?从线程产生数据,到invork更新到界面上,还有时间差呢反正就是人眼看,更新的再快看的清楚?用个timer每秒更新一次足够看了.嫌慢100ms更新一次

需要判断2次的区别,不少控件会挺麻烦啊另外,按我这么做的话,怎样强制先绘制后台控件呢?
解决方案十四:
代码让page切换一下
解决方案十五:
而且你要改为在timer里更新控件的text,根本不需要判断它是否有改变,无脑网上赋值就行因为控件的text属性里set函数本身已经对值是否改变进行了校验,如果不变就不赋值,当然也不会引发控件刷新

时间: 2024-09-22 18:44:41

请问tabcontrol第一次点击后面的tabpage发生了什么?的相关文章

数据统计-请问如何实现下面的mysql分组查询(新学关系数据库感觉有点复杂所以求教)

问题描述 请问如何实现下面的mysql分组查询(新学关系数据库感觉有点复杂所以求教) 查找ip不为127.0.0.1的某个时间段内的数据(比如在2016-03-15 00:00:00至2016-03-15 23:59:59) 按照每5分钟一条分组(0-5,5-10一共288组数据) 再对每组数据按照uid去重 最后求得每一组的数量 解决方案 SELECT FLOOR(UNIX_TIMESTAMP(addTime) / (5 * 60)) time, COUNT(DISTINCT uid) FRO

qq音乐弹出脚本错误“当前页面的脚本发生错误”怎么办

如在QQ音乐弹出"当前页面的脚本发生错误" 解决办法  方法一. 在ie浏览器我们点击菜单上的[工具-internet选项]-[安全]进入之后我们再点击[默认级别],在单击[确定]就可以了非常的简单. 方法二. 删除所有临时的 Internet 相关文件 1. 启动 Internet Explorer. 2. 在"工具"菜单上,单击"Internet 选项". 3. 单击"常规"选项卡. 4. 在"Internet

请问rt.jar里面的:java.lang.String$1这个类是做什么用的,为什么API里查不到?

问题描述 RT~~~~~~~~ 解决方案 这个是内部类,楼主自己写一个java类,里面写一个内部类,然后用javac编译一下就会发现会出现两个class文件,有一个名称就是xxx$xx那样的解决方案二:找到了,原来要用rar打开jar包才看得到啊--解决方案三:匿名的内部类,API里当然查不到.话说,楼主的JDK是什么版本的,为啥我1.6.0_29里就没找到咧?

tabcontrol 添加页-关于TabControl控件的使用

问题描述 关于TabControl控件的使用 请问各位大神们,如何实现:在一个窗体中,点击一个按钮"添加一页",实现Tabcontrol中添加一个TabPage,但是添加时TabPage中要能拥有一些控件,如ListView,Button等.请问如何实现啊?

tabControl标签问题

问题描述 tabControl上有三个标签(tabpage).我想删除其中一个没有被选中的标签 解决方案 解决方案二: 那就删除吧,有什么问题?tabControl1.TabPages.Remove(tabControl1.TabPages["tabPage3"]);//ortrytabControl1.TabPages.Remove(tabControl1.TabPages[2]); 解决方案三: tabControl1.TabPages的Remove,RemoveAt,Remove

Win8访问网页提示当前网页脚本发生错误怎么办

  很多Win8用户现在还在使用IE浏览器来浏览网页,不过最近有用户反映在访问网页的过程中弹出"脚本错误"的提示框,提示当前页面的脚本发生错误,这是怎么回事呢?出现这种情况的原因是用户使用的浏览器不能完全支持页面里的脚本,该如何解决此问题呢? 方法一:清除IE缓存 1.清除IE浏览器的缓存,点击工具>Internet选项,然后点击Internet删除文件(勾选删除所有脱机内容),之后重新打开IE浏览器,同时确认并使用的是IE6.0及以上版本; 2.清除网页上的缓存,在网页上点击工

Win7旗舰版系统下打开QQ游戏提示脚本发生错误的解决方案

  qq游戏是腾讯推出的一款在线休闲游戏平台.可以使用QQ直接登陆QQ游戏,很多人在闲暇时间会玩QQ游戏来打发时间,不过有用户反映说在win7旗舰版系统下打开QQ游戏的时候,就会弹出一个脚本错误的窗口,提示当前页面的脚本发生错误,导致无法玩QQ游戏,要怎么解决这个问题呢?接下来小编跟大家分享一下关于这个问题的解决方案吧. 一.删除所有临时的 Internet 相关文件 1)启动 Internet Explorer.在"工具"菜单上,单击"Internet 选项",选

tabcontrol 选项卡莫名其妙的自动切换问题

问题描述 由于在tabcontrol有多个tabpage,我用remove的方法隐藏部分tabpage后,有的时候,当鼠标移动到显示的tabpage上的时候,选项卡就自动切换了,请教是什么原因,有什么办法解决? 解决方案 解决方案二:说错了,是鼠标移动到一个button上后选项卡就自动切换了,可是这个button我没有设置触发事件解决方案三:问题已解决,结贴解决方案四:问题已解决,结贴

企业第一次建网站 是交学费吗?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 我们发现有不少企业,第一次建网站时出现了不少让人担忧的情况. 企业第一次建网站,侧重点发生了偏移.我们暂且撇开对网站开发费用的过度关注不谈,企业第一次建网站对网站的功能需求不明确,把重心放在了首页的设计效果,甚至是一些极小的细节处理上,这些关注本无可厚非,但是如果没有将重心放在网站的网络营销能力上,几乎企业建的第一个网站,只是交学费而已! 我