C#——winform下的小例子

揭开winform的神秘面纱

   记得刚开始学习的时候就听到winform这个名词,那时候觉得很陌生,很新鲜,一种高大上的感觉……等到真的接触并认识了Winform才知道对于我们来说这并不是新鲜的也不陌生,看到界面后恍然大悟一种亲切感油然而生,感觉跟VB很相似,里面的一些控件、属性、事件等都很相像。

    附图一张看看有没有很熟悉:

    

几个亲切的小例子

  1. 生日选择器

  代码:  

<span style="font-family:KaiTi_GB2312;">namespace _03生日选择器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int yearcmd = DateTime.Now.Year;//获得当前的年份
            for (int i = yearcmd ; i >=1949; i--)
            {
                cmbYear.Items.Add(i +"年");
            }
        }

        private void cmbYear_SelectedIndexChanged(object sender, EventArgs e)
        {
            cmbMonth.Items.Clear();//清空原来添加的月份
            for (int i = 1; i  <=12; i++)
            {
                cmbMonth .Items .Add (i +"月");//把月份添加到第二个cmb控件中
            }
        }

        private void cmbMonth_SelectedIndexChanged(object sender, EventArgs e)
        {
            cmdDay.Items.Clear();

            string strYear = cmbYear.SelectedItem.ToString().Split('年')[0];//获取当前选中年份
            string strMonth = cmbMonth.SelectedItem.ToString().Replace("月","");//获取当前选中的月份

            int year = Convert.ToInt32(strYear );//把年份转为int类型
            int month = Convert.ToInt32(strMonth);//把月份转为int类型

            int day = 0;//定义变量用来存日期
            if (month ==2)
            {
                if (year %400==0||year%4==0&&year %100!=0)
                {
                    day = 29;
                }
                else
                {
                    day = 28;
                }
            }
            else
            {
                switch (month )
                {
                    case 4:
                    case 6:
                    case 9:
                    case 11:
                        day = 30;
                        break;
                    default :
                        day =31;
                        break ;

                }
            }
            for (int i = 1; i <=day ; i++)
			{
			 cmdDay .Items .Add (i );
			}

        }
    }
}</span>

    用到的控件:ComboBox;既然是生日选择器年份不能超过当然年份,需要考虑获取当前的年份,选完年份之后就得选月份因为如果第二个控件不清空,那么选择一次年份就会加载一次月份,造成月份的重复,而对于天数的考虑1、3、5、7、8、10、12月都是31天,4、6、9、11月是30天,2月是最麻烦的一个月需要考虑这个月是28天还是29天这就用到了之前学的那个小例子“闰年判断”,综合考虑一个生日选择器的小例子就实现了!


  2. 跑马灯

  代码:

<span style="font-family:KaiTi_GB2312;font-size:18px;">namespace _07一个小组件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void timer1_Tick_1(object sender, EventArgs e)
        {
            label1.Text = label1.Text.Substring(1) + label1.Text[0];

            label2.Text = label2.Text.Substring(label2.Text.Length - 1) + label2.Text.Substring(0, label2.Text.Length - 1);
        }

       
    }
}</span>
  

  实现:运行效果是实心五角星和空心五角星交替如同五角星在运动;

  

     用到的控件:2个Label控件,1个timer控件,一开始没有实现动态效果感觉哪儿都没有错,后来发现是timer属性的Enable属性是False,应该是True,timer控件的Enable默认是false用的时候记得改为True;


 总结

 这几个例子的实现过程是对控件和属性熟悉的过程,学习这里要时刻用到对比的学习方法,这样既能复习VB的相关知识又能更好的学习C#!


评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值