做一个登录窗口,登录成功时关闭form1,展示from2界面

1.主界面Login

namespace WindowsFormsApplication1
{
public partial class Login : Form
{
public string username;//定义一个变量给子窗体传值
public Login()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//取出用户名和密码
string uid = txtuid.Text;
string pwd = txtpwd.Text; if (uid != "" && pwd != "")
{
LoginDA da = new LoginDA(); //连接数据库
if (da.DengLu(uid, pwd)) //登录查询
{ //将用户名赋值给成员变量username
username = uid;
//将该窗体的返回值变为OK
this.DialogResult = DialogResult.OK;
//将该窗体关闭
this.Close(); }
else
{
MessageBox.Show("用户名或密码错误!");
}
}
else
{
MessageBox.Show("用户名和密码不能为空!");
}
} private void Login_Load(object sender, EventArgs e)
{ }
}
}

2.Program.cs 修改主主窗体Login变为Main

namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); //造一个登录窗体
Login log = new Login(); if (log.ShowDialog() == DialogResult.OK)
{
Application.Run(new Main(log.username));//main窗体的构造方法
}
}
}
}

3.Main窗体

namespace WindowsFormsApplication1
{
public partial class Main : Form
{
private string uid;//造一个变量接收Login窗体的值
private ChinaDA cda;
public Main()
{
InitializeComponent();
}
public Main(string username)
{
InitializeComponent();
uid = username; cda = new ChinaDA();//连接数据库
} private void Main_Load(object sender, EventArgs e)
{
label1.Text = uid;//把接收到的值传给label1显示一下 //填充省的下拉列表
FillSheng(); //填充市的下拉列表
FillShi(); //填充区的下拉列表
FillQu(); } private void cmbsheng_SelectedIndexChanged(object sender, EventArgs e)
{
//填充市的下拉列表
FillShi(); //填充区的下拉列表
FillQu();
} private void cmbshi_SelectedIndexChanged(object sender, EventArgs e)
{
//填充区的下拉列表
FillQu();
} //填充省的方法
public void FillSheng()
{
List<China> list = cda.Select(""); cmbsheng.DataSource = list;
cmbsheng.DisplayMember = "Name";
cmbsheng.ValueMember = "Code";
} //填充市的方法
public void FillShi()
{
List<China> list = cda.Select(cmbsheng.SelectedValue.ToString()); cmbshi.DataSource = list;
cmbshi.DisplayMember = "Name";
cmbshi.ValueMember = "Code";
} //填充区的方法
public void FillQu()
{
List<China> list = cda.Select(cmbshi.SelectedValue.ToString()); cmbqu.DataSource = list;
cmbqu.DisplayMember = "Name";
cmbqu.ValueMember = "Code";
} private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(cmbsheng.SelectedValue.ToString());
}
}
}

winform(三)——更换主窗体例子的更多相关文章

  1. WinForm 更换主窗体的例子

    做一个登录窗口,登录成功时关闭form1,展示from2界面 1.主界面Login namespace WindowsFormsApplication1 { public partial class ...

  2. C#之菜单控件、主窗体打开子窗体、GroupBox控件使用

    一.背景 一年前有学习过C#,但没有在项目中去实际做APP,重新捡起来应用到项目中.我同事本来做好一个CANOPEN设备管理的界面,由于近期搜索了别人的开发的界面,我觉得有很多东西要重新安排,以及我已 ...

  3. C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子

    C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...

  4. Winform 主窗体更换 构造函数传值

    制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

  5. Winform主窗体的设置

    软件必然涉及到一个主窗体MainForm,下面介绍一下几个简单的属性设置,可能比较有用 (1)icon,当然是咱们软件的图标了,设置上去即可 (2)isMdiContainer,这个比较重要了哦,必须 ...

  6. WinForm 之 程序启动不显示主窗体

    在 WinForm 程序启动时,不显示主窗体的实现方法主要有以下5种,第五种最简单,而且效果也不错,第四种方法也值得推荐. 实例代码如下: //隐藏窗体的方法1/5:不指定任何窗体为主窗体 //注意: ...

  7. 【winform】主窗体多线程给子窗体传值

    1.主窗体多线程给子窗体传值 解决方案:主要使用委托,因为会出现跨线程错误 主窗体 public FormMain() { InitializeComponent(); //background th ...

  8. Winform主窗体设计

    主窗体顶部为菜单按钮,子窗体内嵌入Panel显示 界面如下: 第二步,主窗体离不开的几个方法 1,点击菜单功能,加载子窗体 private void btnOpenForm_Click(object ...

  9. C#--WinForm项目主窗体设计

    主窗体基本设置 大小.颜色.去边框.出现的位置 Panel控件 背景图.颜色.布局: Label标签 文本.字体.背景颜色.布局 按钮 布局.文本.字体颜色.背景色. 底部panel绑定控件边框.颜色 ...

随机推荐

  1. PC网站CSS分享

    这里想总结些编写网页的经验,以PC端的为主,前面总结过后台的,今天写些前台的,参考了bootstrap3.3.5.bootstrip2.3.2和模版matrix. 前段时间还写过一篇<前端基础学 ...

  2. 1Z0-053 争议题目解析697

    1Z0-053 争议题目解析697 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 697.Which statement is true about a Scheduler-gen ...

  3. ProgressBar

    <1>基本信息设置 progressBar1.Maximum = 1000;    //设置ProgressBar的最大值 progressBar1.Value = 0;         ...

  4. TP框架执行流程分许

    1. index.php 入口文件 2. ThinkPHP/ThinkPHP.php 在php5.3版本以后 设置常量有两种方式: const name = value; 作用域根据当前命名空间决定 ...

  5. iOS中获取cell中webview的内容尺寸

    最近项目中遇到在cell中获取webView的内容的尺寸的需求 实现的思路其实很简单 就是通过执行js 获取尺寸即可 为了后面用着方便我直接封装了一个HTML的cell 起名就叫 STHTMLBase ...

  6. sql server实现自定义分割月功能

    本文目录列表: 1.为何出现自定义分割月需求 2.sql server实现自定义分割月功能 3.测试验证效果 4.总结语 5.参考清单列表   1.为何出现自定义分割月的需求   今天梳理一个平台的所 ...

  7. 1.什么是Code First(EF Code First 系列)

    EF4.1中开始支持Code First .这种方式在领域设计模式中非常有用.使用Code First模式,你可以专注于领域设计,根据需要,为你一个领域的对象创建类集合,而不是首先来设计数据库,然后来 ...

  8. 多条asp.net网站的优化建议

    一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的 ...

  9. Oracle数据库优化的经验总结

    个人理解,数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个 人理解应该分为物理的和逻辑的优化, 物理的是指oracle产品 ...

  10. 【配置属性】—Entity Framework 对应表字段的类型的设定配置方法

    摘自:http://www.cnblogs.com/nianming/archive/2012/11/07/2757997.html Entity Framework Code First的默认行为是 ...