C#入门之窗体的简单用法实例

本文实例讲述了C#窗体的简单用法。分享给大家供大家参考。具体分析如下:

今天简单的学习了一些控件和事件的运用。没有什么很全面的理论,所以今天就总结下所写的程序。一个简单的注册页面程序

注册页面程序
 
要求:
 
1. 修改所有的控件Name 属性

2. 登录事件   检测各个控件是否为空,如果是空  弹出注册失败    如果成功  则显示新窗体 并且 新窗体上面显示    “XXX你好! 欢迎来学习.Net” 走马灯形式

密码输入三次那么登录按钮不可用  3分钟之后可用

把注册信息的各个数据按照     Rocky|admin|renyanlei@aliyun.com|18301412747|男|足球,篮球,排球”写入到一个文本文件中

具体代码如下:

代码如下:

public partial class Form1 : Form
{
        public Form1()
        {
            InitializeComponent();
        }
        
        int num = 1;   //定义num是为了获取输入错误的次数
 
        private void btnregster_Click(object sender, EventArgs e)
        {
            //如果达到三次则注册按钮将不能使用
            if (num == 3)
            {
                this.btnregster.Enabled = false;
            }
            //定义字符串来接收文本数据
            string user = this.txtname.Text.Trim();
            string pwd = this.txtpwd.Text.Trim(); 
            string email = this.txtemail.Text.Trim();
            string phone = this.txtphone.Text.Trim();

//判断用户名、密码、邮箱、手机、性别、爱好是否为空,如果为空,则提示注册失败,否则则提示注册成功,进入下一个界面
                if (string.IsNullOrEmpty(user))
                {
                    MessageBox.Show("注册失败,未输入用户名!");
                    ++num; //计时器的累加
                }
 
                else if (string.IsNullOrEmpty(pwd))
                {
                    MessageBox.Show("注册失败,未输入密码!");
                    ++num;
                }
 
               else if (txtaginpwd.Text != pwd)
                {
                    MessageBox.Show("注册失败,确认密码必须保持一致");
                    ++num;
                }
 
                else if (string.IsNullOrEmpty(email))
                {
                    MessageBox.Show("注册失败,未输入邮箱");
                    ++num;
                }
 
                else if (string.IsNullOrEmpty(phone))
                {
                    MessageBox.Show("注册失败,未输入手机号");
                    ++num;
                }
 
                else if (cbkbasketball.Checked==false && cbkpaiqiu.Checked==false && cbkscore.Checked==false)//只有在都没有被选中的情况下才显示注册失败
                {
                    MessageBox.Show("注册失败,请选择爱好!");
                    ++num;
                }
                else if (radman.Checked==false && radwomen.Checked==false  )
                {
                    MessageBox.Show("注册失败,请选择性别");
                     ++num;
                }
               else
              {
                   MessageBox.Show("注册成功");
                   Form2 fm = new Form2(user);//打开Form2的窗体,这里传入一个参数user。
                   fm.Show();
                   this.Hide();    //隐藏Form1的窗体 
             }
           //创建一个Regster文本文档,并写入注册信息,且以分隔符(|)隔开
                string gender = string.Empty;
                string like = string.Empty;
              //判断性别被选中的是哪个,就获取哪个的文本
                if (radman.Checked == true)
                {
                    gender = radman.Text;
                }
                else
                {
                    gender = radwomen.Text;
                }
              //判断爱好哪几个被选中,则获取选中的文本
                
                if (this.cbkbasketball.Checked)
                {
                    like += cbkbasketball.Text + ",";
                }
                if (this.cbkpaiqiu.Checked)
                {
                    like += cbkpaiqiu.Text+",";
                  
                }
                if (this.cbkscore.Checked)
                {
                    like += cbkscore.Text+",";
                }
                string[] array = { txtname.Text, txtpwd.Text, txtemail.Text, txtphone.Text, gender,like };//定义一个数组来接收注册信息的数据
                string strs = string.Empty;
                foreach (var item in array)
               {
                    strs += item;
                    strs = string.Join("|",array);//注册信息在文本文档中以分隔符隔开
           }
                File.WriteAllText("Regster.txt", strs);//若只写文档名字,则默认的路径是在本项目的bin目录下。
         }
            private void btnconsole_Click(object sender, EventArgs e)//取消按钮
      {
            txtname.Focus();//让用户名重新获取焦点
            txtname.Text = "";
            txtpwd.Text = "";
            txtaginpwd.Text = "";
            txtemail.Text = "";
            txtphone.Text = "";
            radman.Checked = false;
            radwomen.Checked = false;
            cbkbasketball.Checked = false;
            cbkpaiqiu.Checked = false;
            cbkscore.Checked = false;
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
             //输入三次错误后,计时器停止输入3分钟后再重新输入
                this.btnregster.Enabled = true;
        }
 
        private void Form1_Activated(object sender, EventArgs e)
       {
            txtname.Focus();//首先让用户名文本框获得焦点
}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • C#设置窗体最大化且不遮挡任务栏的方法

    本文实例讲述了C#设置窗体最大化且不遮挡任务栏的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /// <summary> /// 设置窗体最大化(不遮挡任务栏) /// </summary> /// <param name="frm"></param> public virtual void SetFormMax(Form frm) {     frm.Top = 0;     frm.Left = 0;    

  • C#透明窗体实现方法

    本文实例讲述了C#透明窗体实现方法.分享给大家供大家参考.具体实现方法如下: namespace WindowsApplication1 { public partial class Form2 : Form { public Form2() { InitializeComponent(); this.Opacity = 1; this.Text = "opacity=1"; this.TopMost = true; } private void Form2_Activated(obj

  • C#实现由四周向中心缩小的窗体退出特效

    本文实例讲述了C#实现由四周向中心缩小的窗体退出特效.分享给大家供大家参考.具体实现方法如下: public const Int32 AW_CENTER = 0x00000010; public const Int32 AW_HIDE = 0x00010000; [DllImport("user32.dll",CharSet=CharSet.Auto)] public static extern bool AnimateWindow(IntPtr hwnd, int dwTime, i

  • C#中WinForm程序退出方法技巧总结

    本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退

  • c#窗体传值用法实例详解

    本文实例讲述了c#窗体传值用法.分享给大家供大家参考.具体分析如下: 对于窗体间的数据传递,是刚开始从事.Net窗体应用程序开发人员碰到的一个常见问题,在此讲几个常见的实现方式.此节内容适用于模式窗体或非模式窗体,部分方式延伸到一般类的操作. (1)构造函数参数传递 通过构造函数传递参数应该是比较基本的参数传递方式,重载构造函数,通过带参数的构造函数来实例化窗体. 在窗体类内部定义参数变量, private object myParams; 实现构造函数, public OptionForm(o

  • C#通过反射获取当前工程中所有窗体并打开的方法

    本文实例讲述了C#通过反射获取当前工程中所有窗体并打开的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace TestAppHelperMSDNSample { static class Program { /// <summary> /// The main entry point for

  • C#非矩形窗体实现方法

    本文实例讲述了C#非矩形窗体实现方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace Win

  • C#中登录窗体和欢迎窗体关闭方法分析

    本文实例分析了C#中登录窗体和欢迎窗体关闭方法.分享给大家供大家参考.具体分析如下: 在c#的winform编程中,我们经常会做登录窗体或欢迎窗体,并把他们作为启动窗体.   但是,我们有可能会遇到一些问题.   请看下面的代码: 复制代码 代码如下: private void button1_Click(object sender, EventArgs e) {     this.Close();     new Form2().Show(); } 这段代码想让form1中的button1在点

  • C# WinForm程序完全退出的问题解决

    1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: 2.Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出: 3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题: 4.System.Environment.Exit(0);   这是最彻底的退出方式,不管什么线程都被强制

  • C#入门之窗体的简单用法实例

    本文实例讲述了C#窗体的简单用法.分享给大家供大家参考.具体分析如下: 今天简单的学习了一些控件和事件的运用.没有什么很全面的理论,所以今天就总结下所写的程序.一个简单的注册页面程序 注册页面程序   要求:   1. 修改所有的控件Name 属性 2. 登录事件   检测各个控件是否为空,如果是空  弹出注册失败    如果成功  则显示新窗体 并且 新窗体上面显示    "XXX你好! 欢迎来学习.Net" 走马灯形式 密码输入三次那么登录按钮不可用  3分钟之后可用 把注册信息的

  • java Swing组件setBounds()简单用法实例分析

    本文实例讲述了java Swing组件setBounds()简单用法.分享给大家供大家参考,具体如下: 先看API: public void setBounds(Rectangle r) 移动组件并调整其大小,使其符合新的有界矩形 r.由 r.x 和 r.y 指定组件的新位置,由 r.width 和 r.height 指定组件的新大小 参数: r - 此组件的新的有界矩形 从API来看,该方法的作用相当于setLocation()与 setSize()的总和.在实际使用时,需将容器的layout

  • Python装饰器原理与简单用法实例分析

    本文实例讲述了Python装饰器原理与简单用法.分享给大家供大家参考,具体如下: 今天整理装饰器,内嵌的装饰器.让装饰器带参数等多种形式,非常复杂,让人头疼不已.但是突然间发现了装饰器的奥秘,原来如此简单.... 第一步 :从最简单的例子开始 # -*- coding:gbk -*- '''示例1: 使用语法糖@来装饰函数,相当于"myfunc = deco(myfunc)" 但发现新函数只在第一次被调用,且原函数多调用了一次''' def deco(func): print(&quo

  • Python生成器定义与简单用法实例分析

    本文实例讲述了Python生成器定义与简单用法.分享给大家供大家参考,具体如下: 一.什么是生成器 在Python中,由于受到内存的限制,列表容量肯定是有限的.例如我们创建一个包含一亿个元素的列表,Python首先会在内存中开辟足够的空间来存储这个包含一亿个元素的列表,然后才允许用户去使用这个列表,这就可能会导致以下问题: 1.内存中没有足够的内存空间开存储这个列表,从而导致列表无法创建 2.即使列表成功创建,然而仍会消耗很长的时间,导致程序效率低下 3.若用户只想访问列表前面的几个元素,则后面

  • Android TabLayout(选项卡布局)简单用法实例分析

    本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到很漂亮的效果.但是TabPageIndicator是第三方的,而且比较老了,当然了现在很多大神都已经开始自己写TabPageIndicator来满足自己的需求,在2015年的google大会上,google发布了新的Android Support Design库,里面包含了几个新的控件,其中就有一个

  • java 线程方法join简单用法实例总结

    本文实例讲述了java 线程方法join简单用法.分享给大家供大家参考,具体如下: 虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行.具体看代码: public class JoinTest { public static void main(String [] args) throws InterruptedExcepti

  • Python装饰器简单用法实例小结

    本文总结分析了Python装饰器简单用法.分享给大家供大家参考,具体如下: 装饰器在python中扮演着很重要的作用,例如插入日志等,装饰器可以为添加额外的功能同时又不影响业务函数的功能. 比如,运行业务函数fun()同时打印运行花费的时间 1. 运行业务函数fun()同时打印运行花费的时间 import time def dec(fun): start = time.time() fun() end = time.time() a = end - start print a def myfun

  • mysql派生表(Derived Table)简单用法实例解析

    本文实例讲述了mysql派生表(Derived Table)简单用法.分享给大家供大家参考,具体如下: 关于这个派生表啊,我们首先得知道,派生表是从select语句返回的虚拟表.派生表类似于临时表,但是在SELECT语句中使用派生表比临时表简单得多,因为它不需要创建临时表的步骤.所以当SELECT语句的FROM子句中使用独立子查询时,我们将其称为派生表.废话不多说,我们来具体的解释: SELECT column_list FROM * (SELECT * column_list * FROM *

  • PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)

    本文实例讲述了PHP正则表达式基本用法.分享给大家供大家参考,具体如下: Demo1.php <?php //尝试着写第一个正则表达式 //第一个参数,表示模式(就是和字符串去比较,匹配) //第二个参数,表示字符串 //如果整个函数模式和字符串比较后匹配了,那么返回真(true)1,否则返回假(false)0 //什么叫匹配,就是一个一个的比较过去 //按照什么规则??按照模式来匹配 //只要模式全部通过,那么就通过 //匹配和相等是两个概念 //因为目前的模式是一个整体,php //所以,字

  • Android入门之Style与Theme用法实例解析

    就目前的互联网发展来看,已经有越来越多互联网企业都在Android平台上部署其客户端,并且为了提升用户体验,这些客户端都做得布局合理而且美观.本文所要介绍的Android的Style设计就是提升用户体验的关键之一.Android上的Style分为了两个方面: 1.Theme是针对窗体级别的,改变窗体样式: 2.Style是针对窗体元素级别的,改变指定控件或者Layout的样式. Android系统的themes.xml和style.xml(位于/base/core/res/res/values/

随机推荐