
马上就是假期了,假期玩点什么呢?刚刚有了SQL Server这门课,以前做过个点名软件,当然没有数据库,功能有限,打算假期做个功能更强大的班级点名软件。
昨天晚上做了两个窗口,一个登录窗口,一个主窗口,我们看一看代码啊
项目里的Program.cs来先启动,登录窗口,再启动主窗口
namespace 点兵点将2._0
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
LoginForm loginForm = new LoginForm();
if (loginForm.ShowDialog() == DialogResult.OK)
{
Application.Run(new MainForm());
}
}
}
}
但是突然卡住了,为什么呢?登录窗口验证成功以后,主窗体怎么知道是谁登录的呢?怎么传参过去呢?
一下脑子空白了,突然看到 Application.Run(new MainForm());里面的MainForm(),括号,因为我是自己学的C语言,一直是习惯面向过程的,我还是喜欢叫函数,不喜欢叫方法,那不是函数吗,括号里往往加参数,构造函数四个大字浮现在眼前。
什么是构造函数呢?在这里不详细解释构造函数了,就是在new的时候做初始化的。
在MainForm.cs中
public partial class MainForm : Form
{
public string zhanghao = "未知账号";
public string xingming = "未知账号";
public string kemu = "未知账号";
public MainForm(string zh,string xm,string km)
{
InitializeComponent();
zhanghao = zh;
xingming = xm;
kemu = km;
}
}
构造函数public MainForm()中加如几个需要传的参数,把参数赋值到主窗体的函数中,就OK了
一下豁然开朗啊,还是写的少啊,怎么就没一下想出来构造函数呢?