窗体启动界面实例
1在项目中接入splashsceen类型的窗体如图
新建窗体
创建好的窗体文件
2 添加用户自定义类用以展示信息[C#] 纯文本查看 复制代码 public class Info {
//滚动条的位置信息
public int Pos {
get;
set;
}
//滚动条上对应的文字信息
public string LabelText {
get;
set;
}
}
3 修改窗体上的滚动条,将marqueeProgressBarControl 改成progressBarControl
4 修改生成窗体中重载部分代码和 枚举变量如下
[C#] 纯文本查看 复制代码
//枚举变量修改
public enum SplashScreenCommand {
Setinfo
}
[C#] 纯文本查看 复制代码 //重载函数的修改,progressBarControl1为滚动条,labelControl2为滚动条对应的文字信息
public override void ProcessCommand(Enum cmd, object arg) {
base.ProcessCommand(cmd, arg);
SplashScreenCommand command = (SplashScreenCommand)cmd;
if(command == SplashScreenCommand.Setinfo) {
Info pos = (Info)arg;
progressBarControl1.Position = pos.Pos;
labelControl2.Text = pos.LabelText;
}
}
5 程序主窗体的构造函数中加入如下代码(启动splashceen窗体)
[C#] 纯文本查看 复制代码 SplashScreenManager.ShowForm(this, typeof (SplashScreenForm), true, true, false);
6 设置滚动条的文字以及滚动条的滚动位置信息如下:
[C#] 纯文本查看 复制代码 /// <summary>
/// 设置初始化窗体文字
/// </summary>
/// <param name="labeltext">显示文字信息</param>
/// <param name="formpos">显示文字信息开始位置</param>
/// <param name="topos">显示文字信息结束位置</param>
/// <param name="sleeptime">文字更改后暂停程序时间</param>
public void SetInfo(string labeltext, int formpos, int topos, int sleeptime)
{
for (int i = formpos; i < topos; i++)
{
// The splash screen will be opened in a separate thread. To interact with it, use the SendCommand method.
SplashScreenManager.Default.SendCommand(SplashScreenForm.SplashScreenCommand.Setinfo,
new Info() { LabelText = labeltext, Pos = i });
//To process commands, override the SplashScreen.ProcessCommand method.
Thread.Sleep(sleeptime);
}
}
调用方式如图:
调用方式
7 最后一步关闭显示的窗体
在主窗体中重载窗体的onload事件主要代买如下
[C#] 纯文本查看 复制代码 protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// Close the Splash Screen.
SplashScreenManager.CloseForm(false);
}
完成
8 最总效果
|