首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

WinForm下Splash的有关问题

2012-04-26 
WinForm下Splash的问题C# codenamespace ShiftConnect.UI{public partial class Mainform : Form{public M

WinForm下Splash的问题

C# code
namespace ShiftConnect.UI{    public partial class Mainform : Form    {        public Mainform()        {            //thread to show splash screen            Thread threadLoading = new Thread(new ThreadStart(splashscreen));            threadLoading.Name = "Splash UI";            threadLoading.Priority = ThreadPriority.Normal;//定义级别            threadLoading.IsBackground = true;//定义是否后台线程            threadLoading.Start();//启动线程            InitializeComponent();                    }        /// <summary>        /// 窗口创建事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        public void Mainform_Load(object sender, EventArgs e)        {            if (AccessHelp.conntrue() == false)            {                MessageBox.Show("数据库连接失败!\r\n请查看数据库是否存在或者连接字符串是否正确", "提示");                this.Close();            }            else            {                    SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lable1.Text = "正在读取WheelChange信息......"; }));                    Thread.Sleep(1000);                    Form_load();//载入CO2和wheelchange信息                    SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lable1.Text = "正在读取交接事项信息......"; }));                    Thread.Sleep(1000);                    ShiftconnRefush();//载入交接事项                    SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lable1.Text = "正在读取B/L设备信息......"; }));                    Thread.Sleep(1000);                    equipinfor();//载入设备信息                    SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lable1.Text = "正在读取设备菜单......"; }));                    Thread.Sleep(1000);                    EvelauteMenu();//为cmb_pcLine装载下拉菜单                    SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lable1.Text = "正在读取CO2库存信息......"; }));                    Thread.Sleep(1000);                    co2load();//装载co2设备菜单                    Thread.Sleep(3000);                    SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.Dispose(); }));                    this.WindowState = FormWindowState.Normal;                           }        }        /// <summary>        /// 定义splash screen        /// </summary>        public static void splashscreen()        {            SplashForm = new Login();            Application.Run(SplashForm);        }        public static  Login SplashForm        {            get;            set;        }

如上面的代码:是winform窗口的一个splash screen
并且本机上调试已经通过了(win7)
splash screen也能够实时的显示载入进度
但是为什么把exe文件发给别的电脑(xp)
打开程序后,程序只是显示一下就会自动关闭呢  
很纠结,求教。。。

[解决办法]
你这个多线程写法很奇怪。
[解决办法]
你代码读写硬件信息的时候是不是调用别人的dll了,看dll考没考过去,如果考过去啦,再看看你调用的dll是不是支持xp
以上为猜测,主要你还想听清你说的你的一闪而过,进去程序啦没有。

热点排行