WinForms问题C#的

来源:百度知道 编辑:UC知道 时间:2024/05/11 14:06:19
我想实现这样一个功能,打个比方我现在有十万条数据要插入数据库中。开始插入的时候弹出一个对话框【正在处理中....】当数据插入完毕的时候显示为【处理完毕】并且关闭对话框。这个不是messagebox.Show()这个对话框要不带任何按钮的。

目前我已经找到一个方法是在一个窗体上加载另一个窗体把另一个窗体的左上角的那三个按钮给屏蔽调 就像我说的这个对话框了。

那位有好的办法说一下。
晕,说了跟没说一样,我知道有这样的方法的。只是不太清楚是咧一个。

你的方法不能实现.如果弹出新窗口了,那十万条数据就不能插入了.因为焦点已经在新窗口上,原窗口就不能执行.除非你的十万条数据是在新窗口中插入的.
我做类似功能的时候一般放一个进度条控件.如果你不想要进度条,可以放一个Label,在点插入按钮的时候Label显示正在处理中,接下来一定要用多线程控制这十万条数据的插入,否则Label将不会显示"正在处理中"的字样而直接进行插入了.当插入完毕后,关闭此线程,Label显示"处理完毕".
如果采用新窗口,就必须在新窗口中执行上面的过程.
对于这样的小功能,越简单越好,不必太浪费时间,所以建议使用进度条控件.
另外如果想要屏蔽该窗体的最大,最小,关闭按钮,则将FormStyle设置成none(VS2003和VS2005属性不同),设置窗体的样式为无边框就行了.

你下面说的那个方法是正确的,还可以加一个ProgressBar就更酷了。
怎么叫说了和没说一样呢,很简单吗,直接新建一个formTest
在那里放一个ProgressBar
在加面放一个公共的方法:
public void startImport(){
progressBar1.MaxXXX(不记得了) = 100000;
for(int i=0; i<100000; i++){
....数据库操作
progressBar1.Value = i;
}
操作完了
this.Close();
}

要主Form中:
Form test = new formTest();
test.startImport();
test.ShowDialog();

当数据完成的时候他就自动的把那个有progressBar的Form关闭了。