实现如图所示登录界面,当输入正确用户名及密码时,转到主界面,否则给出错误提示。要求不同身份的登陆者拥有不同的操作权限。

          

源代码:

1.初始化三个string类型的变量分别用来存储用户名、密码和身份。

[csharp] view plain copyprint?
  1. string yhm, mm, sf;  

string yhm, mm, sf;
[csharp] view plaincopy print?
  1. private void Form1_Load(object sender, EventArgs e)
  2. {
  3. yhm=mm="";
  4. sf=radioButton1.Text;
  5. }

private void Form1_Load(object sender, EventArgs e){yhm=mm="";sf=radioButton1.Text;}

2.为三个单选按钮添加CheckedChanged事件处理程序

1>学生:

[csharp] view plaincopy print?
  1. private void radioButton1_CheckedChanged(object sender, EventArgs e)
  2. {
  3. if(radioButton1.Checked)
  4. {
  5. sf=radioButton1.Text;
  6. checkBox1.Checked = true;
  7. checkBox2.Checked=checkBox3.Checked=checkBox4.Checked=checkBox5.Checked=false;
  8. }
  9. }

private void radioButton1_CheckedChanged(object sender, EventArgs e){if(radioButton1.Checked){sf=radioButton1.Text;checkBox1.Checked = true;checkBox2.Checked=checkBox3.Checked=checkBox4.Checked=checkBox5.Checked=false;}}

2>教师:

[csharp] view plaincopy print?
  1. private void radioButton2_CheckedChanged(object sender, EventArgs e)
  2. {
  3. if (radioButton2.Checked)
  4. {
  5. sf = radioButton2.Text;
  6. checkBox1.Checked=checkBox2.Checked = true;
  7. checkBox3.Checked = checkBox4.Checked = checkBox5.Checked = false;
  8. }
  9. }

 private void radioButton2_CheckedChanged(object sender, EventArgs e){if (radioButton2.Checked){sf = radioButton2.Text;checkBox1.Checked=checkBox2.Checked = true;checkBox3.Checked = checkBox4.Checked = checkBox5.Checked = false;}}

3>管理员:

[csharp] view plaincopy print?
  1. private void radioButton3_CheckedChanged(object sender, EventArgs e)
  2. {
  3. if (radioButton3.Checked)
  4. {
  5. sf = radioButton3.Text;
  6. checkBox1.Checked = checkBox2.Checked = checkBox3.Checked = checkBox4.Checked = checkBox5.Checked = true;
  7. }
  8. }

private void radioButton3_CheckedChanged(object sender, EventArgs e){if (radioButton3.Checked){sf = radioButton3.Text;checkBox1.Checked = checkBox2.Checked = checkBox3.Checked = checkBox4.Checked = checkBox5.Checked = true;}}

3.为四个Button按钮添加Click事件:

1>确定:

[csharp] view plaincopy print?
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. yhm = textBox1.Text.Trim();
  4. mm = textBox2.Text.Trim();
  5. if (yhm == "xs" && mm == "xs" && sf == "学生")
  6. {
  7. tabControl1.SelectedTab = tabPage2;
  8. panel2.Visible = true;
  9. button4.Enabled = button5.Enabled = button6.Enabled = button7.Enabled = false;
  10. panel1.Visible = false;
  11. }
  12. else if (yhm == "js" && mm == "js" && sf == "教师")
  13. {
  14. tabControl1.SelectedTab = tabPage2;
  15. panel2.Visible = true;
  16. button3.Enabled=button4.Enabled = true;
  17. button5.Enabled = button6.Enabled = button7.Enabled = false;
  18. panel1.Visible = false;
  19. }
  20. else if (yhm == "gly" && mm == "gly" && sf == "管理员")
  21. {
  22. tabControl1.SelectedTab = tabPage2;
  23. panel2.Visible = true;
  24. button3.Enabled=button4.Enabled = button5.Enabled = button6.Enabled = button7.Enabled = true;
  25. panel1.Visible = false;
  26. }
  27. else
  28. MessageBox.Show("用户名或密码错误","登录失败");
  29. }

 private void button1_Click(object sender, EventArgs e){yhm = textBox1.Text.Trim();mm = textBox2.Text.Trim();if (yhm == "xs" && mm == "xs" && sf == "学生"){tabControl1.SelectedTab = tabPage2;panel2.Visible = true;button4.Enabled = button5.Enabled = button6.Enabled = button7.Enabled = false;panel1.Visible = false;}else if (yhm == "js" && mm == "js" && sf == "教师"){tabControl1.SelectedTab = tabPage2;panel2.Visible = true;button3.Enabled=button4.Enabled = true;button5.Enabled = button6.Enabled = button7.Enabled = false;panel1.Visible = false;}else if (yhm == "gly" && mm == "gly" && sf == "管理员"){tabControl1.SelectedTab = tabPage2;panel2.Visible = true;button3.Enabled=button4.Enabled = button5.Enabled = button6.Enabled = button7.Enabled = true;panel1.Visible = false;}elseMessageBox.Show("用户名或密码错误","登录失败");}

2>取消:

[csharp] view plaincopy print?
  1. private void button2_Click(object sender, EventArgs e)
  2. {
  3. this.Close();
  4. }

private void button2_Click(object sender, EventArgs e){this.Close();}

3>注销登录:

[csharp] view plaincopy print?
  1. private void button8_Click(object sender, EventArgs e)
  2. {
  3. panel1.Visible = true;
  4. panel2.Visible = false;
  5. textBox1.Text = textBox2.Text = "";
  6. radioButton1.Checked = true;
  7. tabControl1.SelectedTab = tabPage1;
  8. }

private void button8_Click(object sender, EventArgs e){panel1.Visible = true;panel2.Visible = false;textBox1.Text = textBox2.Text = "";radioButton1.Checked = true;tabControl1.SelectedTab = tabPage1;}

4>退出系统:

[csharp] view plaincopy print?
  1. private void button9_Click(object sender, EventArgs e)
  2. {
  3. Application.Exit();
  4. }

private void button9_Click(object sender, EventArgs e){Application.Exit();}    

运行结果展示图:

C#中容器控件GroupBox、Panel、TabControl相关推荐

  1. C#中主窗体Panel中加载其他多个窗体Panel控件

    今天在技术群里,笔者遇到一个这样的问题,"有客户想让两个Form窗体的内容放到一个Form窗体中,但是两个窗体的内容超出主窗体的大小",为了解决这个问题,笔者的想法是"采 ...

  2. Xcode 中使用 Color Panel 查看颜色

    在 Swift 开发中,我们经常会用到 Color 或 UIColor 中预置的颜色,比如 Color.red,NSColor.windowBackgroundColor. 但是有时候,Apple 预 ...

  3. Bootstrap中的面板(panel)

    背景 写自动折叠的面板时遇到点问题,虽与面板本身无关,可看到他有序的组织,我想bootstrap肯定有完整的面板结构.果不其然. 基本结构 <div class="panel-grou ...

  4. Window控制面板中NVIDIA Control Panel缺失找不到文件解决方案

    问题:NVIDIA Control Panel在这里打不开,提示错误信息 解决方案: 第一步:Win + R :输入regedit 第二步:Ctrl + F 搜索 NVIDIA Control Pan ...

  5. panel中html怎么写,panel控件有什么用 请写出Panel控件的用途

    当多个panel控件重叠时,把一个panel的visible/设置为true,其它的设置为f例如有3个panel,分别为panel1,panel2,panel3 如果重叠的话,把他们的大小设置为相同大 ...

  6. C# 中panel的mousewheel鼠标滚轮事件触发

    如果将窗体或容器控件(如Panel控件)的AutoScroll属性设置为True时,那么当窗体或Panel容不下其中的子控件时就会出现 滚动条,通过移动滚动条可以上下显示出窗体或Panel中的全部内容 ...

  7. Winform 中panel的mousewheel鼠标滚轮事件触发

    如果将窗体或容器控件(如Panel控件)的AutoScroll属性设置为True时,那么当窗体或Panel容不下其中的子控件时就会出现 滚动条,通过移动滚动条可以上下显示出窗体或Panel中的全部内容 ...

  8. C# WinForm解决Panel控件中的图片刷新时会闪烁的问题

    最近在项目开发过程中,使用Panel控件显示座位背景图,在分屏切换时,发现背景图会闪烁.在同事的帮助下,通过以下方法解决了: 新建一个类,继承Panel控件类,然后开启该控件的双重辅助缓冲区,禁止擦除 ...

  9. Winform框架中内容的学习

    一.Winform框架中的内容 WinForm(一) WinForm入门与基本控件使用_阿阿阿安的博客-CSDN博客_winform winform 控件及其各个属性_weixin_30907935的 ...

最新文章

  1. Play 1.x框架学习之五:错误信息显示 (error message display In play framework)
  2. mysql 存储过程月单拆天单_为部门整理的mysql_db使用军规
  3. 高通camera驱动分析
  4. HDOJ1860 ( 统计字符 ) 【水题】
  5. 计算机组成原理期末复习题
  6. java 泛型和类型擦除_关于Java泛型和擦除
  7. ftl转pdf及问题集锦
  8. 网易数帆、云音乐、Intel、有赞最新大数据实践(PPT下载+视频回放)
  9. python︱六款中文分词模块尝试:jieba、THULAC、SnowNLP、pynlpir、CoreNLP、pyLTP
  10. JavaWeb Cookie客户端技术和Session服务端技术详解
  11. 快排,归并(日常复习)
  12. 假货泛滥是淘宝的毒瘤
  13. 实战四:Kaggle自行车租赁预测比赛
  14. 手写深度学习之优化器(SGD、Momentum、Nesterov、AdaGrad、RMSProp、Adam)
  15. 省市区areacode反查的精简写法
  16. 邹恒甫:谈点2002年后海鬼/龟和特聘教授的工资待遇和福利
  17. 直接数字下变频(3):希尔伯特变换法
  18. 日本现场常用日语词汇
  19. 大数据第一章(Linux环境部署JDKMysql)
  20. php数值变成函数,PHP实现金额数字转换成大写函数

热门文章

  1. mysql scott用户_在mysql中创建 oracle scott 用户的四个表及插入初始化数据
  2. java 执行jar_windows下如何用java指令运行jar包?
  3. firebird 3.0 开发者指南_11月19日召开 2020 vivo开发者大会报名正式开启
  4. 单片机串口发送数据很慢?这种方法帮助你提高!
  5. c语言教改课程项目,C语言程序设计课程的教学改革.pdf
  6. 电路常识性概念(8)-MOS管及简单CMOS逻辑门电路原理图
  7. 计算机显示有可移动存储,winxp系统中我的电脑出现很多个可移动磁盘怎么办
  8. java界面 ppt_Java GUI图形用户界面 课件.ppt
  9. 牛客练习赛46 C 华华跟奕奕玩游戏 (期望,概率)(详解)
  10. 第1节 IMPALA:4、5、linux磁盘的挂载和上传压缩包并解压