C#基础之 二十二 C#窗体中常用的控件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tigaobansongjiahuan8/article/details/81532440

前言

      第一次看这部分的视频的时候,我就有一个非常深的感触,当时看到这些控件的名称和“长相”之后,觉得和VB真的是如出一辙,没有什么不一样的,只不过这一个是C#,以前接触的是VB,这样的话应该还是比较容易接受的,只是一些控件的位置有所不同,需要适应一下,下面和大家聊聊这些控件吧!

小谈控件(事件)

  • 什么是事件?
    • 事件就是对象之间通信的一种机制。比如:在面向对象的编程语言中,任何一个对象都可以有相应的事件。例如:鼠标单击事件、鼠标移动事件、按钮单击事件等等。在按钮单击事件中,是鼠标对象向按钮对象发出的一个消息,所以就是鼠标和按钮两个对象通信的一种机制。
  • C#中使用事件的步骤:
    • 1.创建一个委托;
    • 2.将创建的委托与特定事件关联(.Net类库中的很多事件都是已经定制好的,所以他们也就有相应的一个委托,在编写关联C#事件处理程序–也就是当有事件发生时我们要执行的方法的时候我们需要和这个委托有相同的签名);
    • 3.编写C#事件处理程序;
    • 4.利用编写的C#事件处理程序生成一个委托实例;
    • 5.把这个委托实例添加到产生事件对象的事件列表中去,这个过程又叫订阅事件。
  • 定义事件的语法:
<访问修饰符> event 委托名 事件名;
  • 定义事件时,一定要有一个委托类型,用这个委托类型来定义处理事件的方法类型。下面定义一个发布者类,并在其内部定义eventRun事件
1 class Judgment
2 {
3     //定义一个委托
4     public delegate void delegateRun();
5     //定义一个事件
6     public event delegateRun eventRun;
  • 示例:
namespace _03常用事件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            ////MessageBox.Show("哈哈哈,又成功了!");
            ////鼠标点击一次窗体,窗体改变一次颜色
            ////随机变化一次,常见的几种颜色,红  黄 蓝  绿
            //Random r = new Random();
            //Color[] color = new Color[] { Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.Black };//定义颜色数组
            //int num = r.Next(0, 5);//随机数0-5
            //this.BackColor = color[num];
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)//鼠标按下
        {
            //MessageBox.Show("哈哈哈,又成功了!");//窗体显示
            //button1.Text = "点击我";

        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            //MessageBox.Show("确实如此");
        }

        private void Form1_MouseEnter(object sender, EventArgs e)//鼠标已进入窗体就会显示“哈哈,我又来了!”
        {
            //MessageBox.Show("哈哈,我又来了!");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("www.baidu.com");//可以打开一些软件或者网址
        }

        private void Form1_MouseLeave(object sender, EventArgs e)//当鼠标离开控件时,弹出一些东西,和MouseEnter类似
        {
            //MessageBox.Show("哈哈哈哈哈哈! ");
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)//鼠标移动,发生
        {
            //System.Diagnostics.Process.Start("www.baidu.com");//只要鼠标移动,就会打开百度
            this.Text = string.Format("x:{0},y:{1}",e.X,e.Y);//鼠标移动的时候,显示鼠标所在的坐标
        }

        private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            System.Diagnostics.Process.Start("www.baidu.com");//鼠标双击事件产生
        }
    }
}
  • 图片控件:
namespace _04图片控件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void picche_MouseEnter(object sender, EventArgs e)
        {
            MessageBox.Show("我是车,厉害不!");
            picche.Location = new Point(0,0);//坐标(为一个点,point)

        }

        private void picbiao_MouseEnter(object sender, EventArgs e)
        {
            MessageBox.Show("我是车标,是不是更厉害!");
            picbiao.Location = new Point(picche.Width,0);
        }
        int i = 0;
        private void picmian_MouseEnter(object sender, EventArgs e)
        {
            int xwidth = this.ClientSize.Width - picmian.Width;//获取窗体宽度,最后一张图片的横坐标就是总的窗体宽度-这个图片的宽度
            int yHeight = this.ClientSize.Height - picmian.Height;//获取窗体高度,同上
            Random r = new Random();
            int xmian = r.Next(xwidth+1);//到边界了
            int ymian = r.Next(yHeight +1);
            picmian.Location = new Point(xmian,ymian);
            i++;
            if(i%7==0)//每七次,办一件事
            {
                MessageBox.Show("哈哈哈,我是最厉害的!");
                picmian.Image = Image.FromFile(@"C:\Users\Administrator\Desktop\机房收费系统——登录.jpg");
                System.Diagnostics.Process.Start("http://www.baidu.com");
                this.BackColor = Color.Black;

            }
        }
    }
}
  • 显示下一张图片:
namespace _05显示下一张图片
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string[] images;
        private void Form1_Load(object sender, EventArgs e)
        {

            string path = @"C:\Users\Administrator\Pictures\Camera Roll";
            images = Directory.GetFiles(path,"*.jpg");//筛选一下,要.jpg格式的图片,其他格式的文件略过
            picImage.Image = Image.FromFile(images[0]);//显示此文件夹下第一章图片
        }
        int i = 0;
        private void btnRight_Click(object sender, EventArgs e)
        {
            i++;
            if (i==images.Length)//或者是if(i>images.Length-1)
            {
                i = 0;
            }
            picImage.Image = Image.FromFile(images[i]);

        }

        private void btnLeft_Click(object sender, EventArgs e)
        {
            i--;
            if(i<0)
            {
                i = images.Length - 1;
            }
            picImage.Image = Image.FromFile(images[i]);
        }
    }
}

小结

      简单的举这么几个“栗子”,有助于理解,其他的控件也都是大同小异,毕竟大家经历过VB,做过学生信息管理系统、机房收费系统,对控件有一定的了解,在这里就不多做介绍了,以上是我对这一部分内容的理解,欢迎大家留言交流!!!

猜你喜欢

转载自blog.csdn.net/tigaobansongjiahuan8/article/details/81532440