110,545
社区成员
发帖
与我相关
我的任务
分享
Thread thUI = new Thread(new ThreadStart(ShowSplashWindow));
thUI.Name = "SplashUI";
//thUI.Priority = ThreadPriority.Normal;
thUI.IsBackground = true;
thUI.Start();private static void ShowSplashWindow()
{
SplashForm = new LoadPic();
Application.Run(SplashForm);
}
Thread thUiL = new Thread(new ThreadStart(LoadResources));
thUiL.Name = "Resource Loader";
//thUiL.Priority = ThreadPriority.AboveNormal;
thUiL.IsBackground = true;
thUiL.Start();
thUiL.Join();private static void LoadResources()
{
for (int i = 1; i <= 30; i++)
{
if (SplashForm != null)
{
SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lblStatus.Text = "Loading some things... "; }));
}
Thread.Sleep(100);
}
SplashForm.Invoke(new MethodInvoker(delegate { SplashForm.lblStatus.Text = "Done. "; }));
}
Application.Run(new Form1());
一旦进入主画面代码就切不到program里面了,试想着把logo在主画面关闭,但program中定义都要是static,public static LoadPic SplashForm
{
get;
set;
}
Application.Run(new Form1());
这个是主画面,个人觉得还不能用线程去打开。而且我要处理主画面的load必须先把这个主画面打开,我总不能在不打开主画面的基础上对主画面进行操作吧[/quote]
你的逻辑从头就错了当然觉得处处都别扭。[/quote]
这就是连基本语法概念都不学,“做几个项目,自然就会了”的后果。Application.Run(new Form1());
这个是主画面,个人觉得还不能用线程去打开。而且我要处理主画面的load必须先把这个主画面打开,我总不能在不打开主画面的基础上对主画面进行操作吧[/quote]
你的逻辑从头就错了当然觉得处处都别扭。[/quote]
恩 可能一开始就错了
那大神能解释下如下的代码嘛?
private void Form1_Load(object sender, EventArgs e)
{
LoadPic form = new LoadPic();
form.Show();
form.TopMost = true;
this.Hide();
//激活窗体,不要让treeview获得焦点
this.Select();
this.TopMost = false;
//GetMenu(plcView);
BindType();
BindData();
cmb_Temp.Visible = false;
cmb_Temp.SelectedIndexChanged += new EventHandler(cmb_Temp_SelectedIndexChanged);
dtViewPlc.Controls.Add(cmb_Temp);
InitPort();
ShowTreeView(plcView);
form.Close();
}
这样的操作是否合理?为什么我的LoadPic画面一直看不到,被主画面挡住了。这时候设置TopMost怎么感觉一点效果都没有~Application.Run(new Form1());
这个是主画面,个人觉得还不能用线程去打开。而且我要处理主画面的load必须先把这个主画面打开,我总不能在不打开主画面的基础上对主画面进行操作吧[/quote]
你的逻辑从头就错了当然觉得处处都别扭。Application.Run(new Form1());
这个是主画面,个人觉得还不能用线程去打开。而且我要处理主画面的load必须先把这个主画面打开,我总不能在不打开主画面的基础上对主画面进行操作吧