关于c# winform 编程的,怎么弄提示类似“加载中”的小窗口
关于c#winform编程的:有一段语句执行完需要时间,我想弄一个和MessageBox.Show差不多的小窗口,但是不能按掉的,目的就不让用户在该语句执行完前进行操作,...
关于c# winform 编程的:有一段语句执行完需要时间,我想弄一个和MessageBox.Show差不多的小窗口,但是不能按掉的,目的就不让用户在该语句执行完前进行操作,
同时完成该语句后小窗口消失。。。。用什么好,求教
找不到类似的程序,大概就是这样 展开
同时完成该语句后小窗口消失。。。。用什么好,求教
找不到类似的程序,大概就是这样 展开
5个回答
展开全部
public partial class Form1 : Form
{
private Form _childForm; //确保只显示一个(对话框)窗体
public Form1()
{
InitializeComponent();
}
protected override void OnActivated(EventArgs e)
{
//当本窗体被激活时,子窗体存在,就激活子窗体(仿模式窗体)
if (_childForm != null)
{
_childForm.Invoke(new Action(_childForm.Activate));//激活
}
base.OnActivated(e);
}
private void button1_Click(object sender, EventArgs e)
{
if (_childForm != null) //防止重复显示(防止意外的意外,可以省略)
return;
this.Enabled = false;//禁用窗体,防止意外
_childForm = new Form2();
//Form2 是需要显示的对话框,可以在上面写你提示的文字信息等
//去除标题栏(防止改大小关闭等等)
_childForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
//不在任务栏显示
_childForm.ShowInTaskbar = false;
//初始位置在显示器中央
_childForm.StartPosition = FormStartPosition.CenterScreen;
//以上3项均可以在窗体属性中直接设置
//绑定关闭事件
_childForm.FormClosed += new FormClosedEventHandler(ChildFormOnFormClosed);
_childForm.Show();//弹出
//这里做你需要做的操作
_childForm.Close();//关闭
}
private void ChildFormOnFormClosed(object sender, FormClosedEventArgs e)
{
this.Enabled = true;//仿对话框关闭时,重启用窗体
_childForm.FormClosed -= ChildFormOnFormClosed;//解除绑定,可以省略
_childForm = null;//确保下次能再次弹出窗体
}
}
还有些小漏洞,再说吧
{
private Form _childForm; //确保只显示一个(对话框)窗体
public Form1()
{
InitializeComponent();
}
protected override void OnActivated(EventArgs e)
{
//当本窗体被激活时,子窗体存在,就激活子窗体(仿模式窗体)
if (_childForm != null)
{
_childForm.Invoke(new Action(_childForm.Activate));//激活
}
base.OnActivated(e);
}
private void button1_Click(object sender, EventArgs e)
{
if (_childForm != null) //防止重复显示(防止意外的意外,可以省略)
return;
this.Enabled = false;//禁用窗体,防止意外
_childForm = new Form2();
//Form2 是需要显示的对话框,可以在上面写你提示的文字信息等
//去除标题栏(防止改大小关闭等等)
_childForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
//不在任务栏显示
_childForm.ShowInTaskbar = false;
//初始位置在显示器中央
_childForm.StartPosition = FormStartPosition.CenterScreen;
//以上3项均可以在窗体属性中直接设置
//绑定关闭事件
_childForm.FormClosed += new FormClosedEventHandler(ChildFormOnFormClosed);
_childForm.Show();//弹出
//这里做你需要做的操作
_childForm.Close();//关闭
}
private void ChildFormOnFormClosed(object sender, FormClosedEventArgs e)
{
this.Enabled = true;//仿对话框关闭时,重启用窗体
_childForm.FormClosed -= ChildFormOnFormClosed;//解除绑定,可以省略
_childForm = null;//确保下次能再次弹出窗体
}
}
还有些小漏洞,再说吧
展开全部
创建一个新的Form设个半透明 具体自己美化 然后用主页面showdialog() 这个新建的FORM
主页面执行任务用线程去执行 线程任务结束时 关闭这个子页面
这个思路差不多能满足你的要求吧
主页面执行任务用线程去执行 线程任务结束时 关闭这个子页面
这个思路差不多能满足你的要求吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你就在执行过程中,直接在当前窗体显示一个“执行中……”,然后把enable设成false,执行完再改成true
showdialog()自动关闭会有问题吧
showdialog()自动关闭会有问题吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个想到的是panel,用showdialog(),因为panel可以很好的设计外观,让页面更和谐,当然也有其他的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用组件和窗体都可以实现。
顺便完成任务。
顺便完成任务。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询