C# 如何创建启动画面(急) 最近做了一个工程,其它问题都已解决,只差为项目添加启动画面.一时找不到解决的办法.请各位大侠指教.谢谢了.我也看了一些帖子,但描述都不是很具体,我是想找到一种比较简单的方法,像VC++ 6.0一样,只需要几行代码就可以搞定.不知C#里是不是可以这样解决?再次感谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去找张gif的动态图就行了撒 [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FormStart());//在这里添加,显示启动窗体 Application.Run(new Form1()); } 我目前的解决方案是:参考5楼的代码:[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FormStart());//在这里添加,显示启动窗体 Application.Run(new Form1()); }然后,FormStart();//在这里添加,显示启动窗体 把FormStart单独放置一张图片,去掉所有其它多余东西.相当于整个窗口只有一张图.然后调用private void FormStart_MouseHover(object sender, EventArgs e) { 太阳能光伏系统 frm = new 太阳能光伏系统(); frm.Show(); this.Close(); }这样,只要鼠标移动到图片上,程序即可进入主界面.但仍感觉此方法不是很好.希望有高手可以指教.多谢.找到合适方案,立即给分. 就再创建个CLASS,在里面写上你要启动的画面不就可以了么,我都是这样做的. using System;using System.Collections.Generic;using System.Windows.Forms;namespace demo{ static class Program { public static ApplicationContext app; //这里 /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); app = new ApplicationContext(new frmStart()); Application.Run(app); } }} private void frmStart_MouseClick(object sender, MouseEventArgs e) { frmMain frm = new frmMain(); Program.app.MainForm = frm; frm.Show(); this.Close(); } 这是我综合了各位的建议之后,改进的方法,已经可以用了.C#代码如下:////////这是Program.cs下的代码using System;using System.Collections.Generic;using System.Windows.Forms;namespace Demo{ static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new StartImage()); //这里是只含有启动图片的Form Application.Run(new MainFrm()); } }}//////////////////////////////////下面是在StartImage.cs中的代码public partial class StartImage : Form///这是StartImage窗口 { static int i = 3;//定义启动画面保持三秒时间.可以修改成你想要的时间. public StartImage() { InitializeComponent(); } private void StartImage_Load(object sender, EventArgs e)//StartImage_Load函数 { Timer t = new Timer(); t.Interval = 1000; t.Tick += new EventHandler(t_Tick); t.Start(); } private void t_Tick(object sender, EventArgs e) { if (i > 0) { i--; } else if (i == 0) { MainFrm frm = new MainFrm();//这是启动画面出现之后的主程序窗口 frm.Show(); this.Close(); i = -1; } } } 程序启动时,如果默认加载主窗口,则可先把主窗口隐藏,显示登陆窗口;当用户登陆成功后,再显示主窗口。这里有个问题,当我们使用FrmMain main = new FrmMain();时就新定义了一个主窗体,这个主窗体就要重新开始加载数据。所以我们要在登陆窗口里定义一个Form变量用来接收正在后台加载数据的那个主窗口。当用户登陆成功后,让这个变量对应的已经加载完数据的主窗口显示出来,就会很快了。主要代码如下:1.在登陆窗口先定义一个全局变量:Form frmOpener;再写一个方法,用来接收主窗口和显示自己。public ShowLogin(Form frmMain){ frmOpener = frmMain; this.Show();}2.程序刚启动的时候,在主窗口调用如下方法:this.Hide(); //这里只是隐藏主窗口,后台在默默加载数据。FrmLogin login = new FrmLogin();login.ShowLogin(); //不能直接调用login.Show();方法。3.在登陆界面登陆登陆成功后调用如下方法:this.Hide(); //隐藏登陆窗口frmOpener.show(); //这样就是让那个刚才在后台默默加载的主窗口显示出来 C#Word的问题 C#中如何用IO流把图片保存? 模态窗口如何改变父窗体大小 请问这个SQL语句这么写没有问题,但常规没有这么写的吧,觉得怪怪的,还有其它的写法吗?? 实数如何转换成LABEL的TEXT输出? 有没有熟悉snmp++.net的高手 C/S用clickonce发布的问题 C#变量的引用 用c#写组件的问题 文本数据转为数组? 怎么动态的往DataTable里添加数据??? 在vs2008种,我怎么找不到oledbdataAdapter 控件空间
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormStart());//在这里添加,显示启动窗体
Application.Run(new Form1());
}
参考5楼的代码:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormStart());//在这里添加,显示启动窗体
Application.Run(new Form1());
}然后,FormStart();//在这里添加,显示启动窗体 把FormStart单独放置一张图片,去掉所有其它多余东西.相当于整个窗口只有一张图.然后调用
private void FormStart_MouseHover(object sender, EventArgs e)
{
太阳能光伏系统 frm = new 太阳能光伏系统();
frm.Show();
this.Close();
}
这样,只要鼠标移动到图片上,程序即可进入主界面.但仍感觉此方法不是很好.希望有高手可以指教.多谢.找到合适方案,立即给分.
using System;
using System.Collections.Generic;
using System.Windows.Forms;namespace demo
{
static class Program
{
public static ApplicationContext app; //这里
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
app = new ApplicationContext(new frmStart());
Application.Run(app);
}
}
} private void frmStart_MouseClick(object sender, MouseEventArgs e)
{
frmMain frm = new frmMain();
Program.app.MainForm = frm;
frm.Show();
this.Close();
}
using System;
using System.Collections.Generic;
using System.Windows.Forms;namespace Demo
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new StartImage()); //这里是只含有启动图片的Form
Application.Run(new MainFrm());
}
}
}//////////////////////////////////下面是在StartImage.cs中的代码
public partial class StartImage : Form///这是StartImage窗口
{
static int i = 3;//定义启动画面保持三秒时间.可以修改成你想要的时间.
public StartImage()
{
InitializeComponent();
} private void StartImage_Load(object sender, EventArgs e)//StartImage_Load函数
{
Timer t = new Timer();
t.Interval = 1000;
t.Tick += new EventHandler(t_Tick);
t.Start();
}
private void t_Tick(object sender, EventArgs e)
{
if (i > 0)
{
i--;
}
else if (i == 0)
{
MainFrm frm = new MainFrm();//这是启动画面出现之后的主程序窗口
frm.Show();
this.Close();
i = -1; }
}
}
这里有个问题,当我们使用FrmMain main = new FrmMain();时就新定义了一个主窗体,这个主窗体就要重新开始加载数据。所以我们要在登陆窗口里定义一个Form变量用来接收正在后台加载数据的那个主窗口。当用户登陆成功后,让这个变量对应的已经加载完数据的主窗口显示出来,就会很快了。
主要代码如下:
1.在登陆窗口先定义一个全局变量:
Form frmOpener;
再写一个方法,用来接收主窗口和显示自己。
public ShowLogin(Form frmMain)
{
frmOpener = frmMain;
this.Show();
}
2.程序刚启动的时候,在主窗口调用如下方法:
this.Hide(); //这里只是隐藏主窗口,后台在默默加载数据。
FrmLogin login = new FrmLogin();
login.ShowLogin(); //不能直接调用login.Show();方法。
3.在登陆界面登陆登陆成功后调用如下方法:
this.Hide(); //隐藏登陆窗口
frmOpener.show(); //这样就是让那个刚才在后台默默加载的主窗口显示出来