C#实现Eclipse登陆界面 进入Eclipse时有个进度条和图片,进度条一直在动,结束后进去主界面,那个用C#可以实现吗?我是新手,请给点思路,多谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用vs的进度条或者第三方进度条控件,然后用多线程控制程序反馈回来的信息,异步更新UI。 我用线程做的进度条,主页面加载在Load事件中,可能是因为主页面也用到了线程,所以页面关闭后主页面不显示,并且报错,InvalidOperationException Winform实现进度条的启动界面http://www.cpbcw.com/code/1598.html 我的主页面构造方法和LOAD事件都有很多代码需要执行的,并且LOAD事件里还用委托调了一个线程来初始化我一个很大的控件,所以5楼的那个程序行不通啊,朋友能说说异步更新UI什么意思吗? //进度条界面 public partial class LoginLoading : Form { private Thread progressBarThread; private ThreadStart mainFormThreadStart; private Thread mainFormThread; public MainForm mainForm; private bool flag; private int progressBarValue = 1; public LoginLoading() { InitializeComponent(); } private void initProgressBar() { flag = true; while (flag) { Thread.Sleep(100); this.progressBar.Value = progressBarValue; progressBarValue++; } } private void LoginLoading_Load(object sender, EventArgs e) { mainFormThreadStart = delegate { initMainForm(sender, e); }; mainFormThread= new Thread(mainFormThreadStart); mainFormThread.Start(); progressBarThread = new Thread(initProgressBar); progressBarThread.Start(); } private void initMainForm(object sender, EventArgs e) { CheckForIllegalCrossThreadCalls = false; if (mainForm != null) { mainForm.MainForm_Load(sender, e); } else { mainForm = new MainForm(); } flag = false; this.progressBar.Value = 100; this.Close(); mainForm.Show(); } } //主页面,pnlMain是一个PANEL public partial class MainForm : Form { public void MainForm_Load(object sender, EventArgs e) { Thread thread = new Thread(new ThreadStart(initControl)); thread.IsBackground = true; thread.Start(); } public void initControl() { if (control == null) { pnlMain.Invoke((EventHandler)(delegate { control = new Control(); })); } } }我自己写了一个程序,但是不是很管用,进度条走完了(已经到了100%)开始显示主页面,但是主页面依然在加载,即使我让他每次睡10秒,并且会在主页面的INITCONTROL方法里报错,谁能帮我看看。 对《顿悟?!新手浅谈事件与委托》一文中的代码改进 把A表中的一列赋给B表中的一列 请问如何用C#实现让程序运行指定长的时间? 请教各位C#熟手,在C#中怎样实现文字滚动?? 请大家帮帮我 如果获取窗口句柄 谁来帮我看看取radiobutton的值呀 帮忙 请大家快来帮忙,关于菜单的问题,谢谢! 两个窗口类传递信息? <C#入门经典 第五版》中实例程序方面的问题 datagridview 指定列,进行绑定,不绑定的列不显示。
http://www.cpbcw.com/code/1598.html
public partial class LoginLoading : Form
{
private Thread progressBarThread; private ThreadStart mainFormThreadStart; private Thread mainFormThread; public MainForm mainForm; private bool flag; private int progressBarValue = 1; public LoginLoading()
{
InitializeComponent();
} private void initProgressBar()
{
flag = true; while (flag)
{
Thread.Sleep(100);
this.progressBar.Value = progressBarValue;
progressBarValue++;
}
} private void LoginLoading_Load(object sender, EventArgs e)
{
mainFormThreadStart = delegate { initMainForm(sender, e); };
mainFormThread= new Thread(mainFormThreadStart);
mainFormThread.Start();
progressBarThread = new Thread(initProgressBar);
progressBarThread.Start();
} private void initMainForm(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
if (mainForm != null)
{
mainForm.MainForm_Load(sender, e);
}
else
{
mainForm = new MainForm();
}
flag = false;
this.progressBar.Value = 100;
this.Close();
mainForm.Show();
}
} //主页面,pnlMain是一个PANEL
public partial class MainForm : Form
{
public void MainForm_Load(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(initControl));
thread.IsBackground = true;
thread.Start();
}
public void initControl()
{
if (control == null)
{
pnlMain.Invoke((EventHandler)(delegate
{
control = new Control();
}));
}
}
}
我自己写了一个程序,但是不是很管用,进度条走完了(已经到了100%)开始显示主页面,但是主页面依然在加载,即使我让他每次睡10秒,并且会在主页面的INITCONTROL方法里报错,谁能帮我看看。