| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1710 人关注过本帖
标题:如何在线程中调用窗体
只看楼主 加入收藏
非凡DZ
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2007-4-6
收藏
 问题点数:0 回复次数:4 
如何在线程中调用窗体
本人正在做个小程序,需要在我定义的线程方法中创建新的窗体,问题如下:
如果我在线程中采用Show()方法弹出窗体的话,如
    Form f = new Form();
    f.Show();
    此时f窗体就全白了 什么响应都没了

如果我在线程中采用ShowDialog()方法弹出窗体的话,窗体可以正常显示,但线程的执行方法就不能再继续了
我自己也查了查帮助,好像有点关于这方面的帮助,说是使用后台操作窗体,也没太看明白
哪位朋友遇到过这种问题,还请指点一二,我在这儿先谢了
(现在程序就卡在这里不能继续下去了)

[[it] 本帖最后由 非凡DZ 于 2008-4-5 08:57 编辑 [/it]]
搜索更多相关主题的帖子: 线程 窗体 
2008-04-03 17:42
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 
把CheckForIllegalCrossThreadCalls设置为false

另外,不管怎么说,尊严还是一个人最重要的吧。。。

有实力才会有魅力 实力来自坚持不懈的努力
2008-04-03 19:07
smoon
Rank: 1
等 级:禁止访问
帖 子:461
专家分:0
注 册:2006-4-29
收藏
得分:0 
另外,不管怎么说,尊严还是一个人最重要的吧。。。什么意思?
有点跑题啊好像
2008-04-04 15:47
冷星
Rank: 1
等 级:新手上路
帖 子:67
专家分:9
注 册:2007-12-13
收藏
得分:0 
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Test
{
    public partial class Form1 : Form
    {
        NewThread ntT;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ntT = new NewThread();
            ntT.ShowWindow();
        }

    }

    public class NewThread
    {
        Form frmT = new Form();
        System.Threading.Thread thrdT;

        ~NewThread()
        {
            if (thrdT.ThreadState == System.Threading.ThreadState.Running) thrdT.Abort();
        }

        public void ShowWindow()
        {
            thrdT = new System.Threading.Thread(new System.Threading.ThreadStart(newthread));
            thrdT.Start();
        }

        public void ShowWindow(Form frmToShow)
        {
            frmT = frmToShow;
            thrdT = new System.Threading.Thread(new System.Threading.ThreadStart(newthread));
            thrdT.Start();
        }

        private void newthread()
        {
            Form frmT = new Form();
            frmT.Show();
            while (!frmT.IsDisposed)
            {
                Application.DoEvents();
            }
        }

    }
}

以上仅供参考。
多说一句,我也不喜欢看到动不动就跪求啊什么的。搞得没半点自尊。。。
2008-04-04 16:14
快速回复:如何在线程中调用窗体
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023085 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved