C#WinForm程序运行时,窗体里部分控件无法显示?有朋友遇到过这样的问题吗?

Jave.Lin 2009-05-02 12:38:40
该窗体我是用某个线程里的方法Application.Run(窗体Name);来Show出来的...

就出现了部份控件无法显示....

如:

WinForm WF;

private void Thread_Method()
{
//这里是对WinForm窗体进行加工处理然后new WinForm();这就省略不写了...太长...也没必要知道

//以上的对WinForm对象的WF进行加工后就再Run消息
Application.Run(WF);
}

private void Button_Click(object sender,Event.... e)
{
Thread temp_thread=new Thread(new ThreadStart(Thread_Method));
}

就是WF窗体显示出来后....有时可以完整的将所有的控件显示....有时部份控件无法显示....

到底是啥原因会这样的呢???

我自己感觉是因为窗体的显示是固定的时间内的,但可能是窗体过大,加载慢的话...就到达不了窗体要显示的时间内加载完...所以出现部分控件无法显示...所以我之前也试过用这样的方法来判断该要显示的窗体是否加载完整...但结果是不行...

如下代码:
while (!WF.IsHandleCreated)
{
Thread.Sleep(100);
}
if (WF.IsHandleCreated)
{
MessageBox.Show("控件句柄创建成功。继续执行。");
WF.Show();
}
else
{
MessageBox.Show("控件句柄创建中,请稍候。");
}
...全文
1764 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
一国之军 2010-08-10
  • 打赏
  • 举报
回复
学习了
hjckeytolove 2009-05-04
  • 打赏
  • 举报
回复
就是哇``重新放一个
wartim 2009-05-04
  • 打赏
  • 举报
回复
碰到过,解决办法就是删掉重新放一个上去,还有看看 visible是不是false
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mjjzg 的回复:]
是你自定义的控件吗,如是那你再好好检查一下代码,如不是,就没碰见过这种情况
[/Quote]

不是自定义的...就是一个普通的RichTextBox...
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fengxingko 的回复:]
TRY CATCH什么的能解决不?
[/Quote]

不会出现异常啊...

try catch也没反应...
mjjzg 2009-05-04
  • 打赏
  • 举报
回复
是你自定义的控件吗,如是那你再好好检查一下代码,如不是,就没碰见过这种情况
fengxingko 2009-05-04
  • 打赏
  • 举报
回复
TRY CATCH什么的能解决不?
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Sysping1 的回复:]
部分控件不是线程安全的!
[/Quote]

该朋友说得对...

但是我该怎么处理这个问题呢???

因为我把System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;...

对线程错误不捕捉....

我想我的问题和这个关系非常大了...

但是我以前在2003的时候写代码控制控件时,就不用这System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;,因为VS2003的这个内置对象的属性本来就是false的...

而我现在用的是VS2005我也试过...一开始不把上面这个属性设置为false的话....当某些线程里的处理对控件是有关系的时候....可能会抛出异常...

如以下图..我的实例的部份运动结果....:
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
......真的是说来话长,.....

如果有哪位高手肯帮忙。。。。请加QQ:372178765

注明信息:CSDN

我申请远程给你看看我的情况。。。因为很多情况文字根本描述不清楚的
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wood001 的回复:]
试过强制窗体重绘吗?
[/Quote]

没有。。。
缥缈大木头 2009-05-04
  • 打赏
  • 举报
回复
试过强制窗体重绘吗?
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
......怎么这么久都没人来看看啊....

我给这问题困了好久...

一点头绪都没有....真是麻烦啊...大家帮帮忙啊....
Jave.Lin 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wartim 的回复:]
碰到过,解决办法就是删掉重新放一个上去,还有看看 visible是不是false
[/Quote]

我根本没必要对RichTextBox.Visible=false;....从头到尾都没有这样设置过啊.....
enaking 2009-05-03
  • 打赏
  • 举报
回复
仔细确认一下,编译器出错了吗,,,有时编译出错不弹提示的,,
Sysping1 2009-05-03
  • 打赏
  • 举报
回复
部分控件不是线程安全的!
Jave.Lin 2009-05-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 enaking 的回复:]
仔细确认一下,编译器出错了吗,,,有时编译出错不弹提示的,,
[/Quote]

没有出错...

也有没任何异常...
Jave.Lin 2009-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnming 的回复:]
加载的控件是否没有注册?
[/Quote]

最主要的是...有时可以完整显示...有时不可以...

有时可以完整显示...这点就可以排除注册问题...

但有时不可以显示...疑问就在这...

我就不知道是否这窗体的显示时间和加载时间是否有关系...
pzlin 2009-05-02
  • 打赏
  • 举报
回复
呵呵。mark一下,,
这个问题没有遇到过,倒是遇到过卸载的很慢的情况
慢到自带的那个 application.restart命令都不起效果
Jave.Lin 2009-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnming 的回复:]
加载的控件是否没有注册?
[/Quote]

先感谢您的关注.

我这个WinForm窗体是本来自己注册好的...所有控件都是已经设置好...

在我以上所说的...对加工处理时,并没有对窗体做过任何的控件追加或是注册...

加工处理,大多是对控件的属性做处理...

所以可以排除控件注册问题...
cnming 2009-05-02
  • 打赏
  • 举报
回复
加载的控件是否没有注册?

111,090

社区成员

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

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

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