美文网首页
03-Windows基础控件二

03-Windows基础控件二

作者: D丝学编程 | 来源:发表于2021-04-13 14:57 被阅读0次

    一、图片框PictureBox控件

    用于在窗体的指定位置显示图片,其为不可编辑的控件,无法获得焦点。

    图片框PictureBox的常用属性:

    属性 说明
    Imgae 用于设置显示在图片框控件上的图像
    ImageLocation 用于设置显示在图片框控件上的图像的路径
    SizeMode 用于设置图像位置和控件大小

    其中SizeMode属性包含5个属性值:

    属性值 说明
    Normal 图像被置于PictureBox的左上角。如果图像比包含它的PictureBox大,则该图像将被裁剪掉。
    StretchImage PictureBox中的图像被拉伸或收缩,以适应PictureBox的大小。
    AutoSize 调整PictureBox的大小,使其等于所包含的图像大小。
    CenterImage 如果PictureBox比图像大,则图像将居中显示。如果PictureBox比图像小,则图像将居中显示并裁剪掉超出的部分。
    Zoom 图像大小按其原有的长宽比例被等比例放大或缩小。

    使用PictureBox显示图片步骤:

    (1)从工具箱拖拽PictureBox控件到窗体内

    (2)点击PictureBox右上角小三角,弹出快捷菜单

    (3)指定PictureBox需要显示的图像和大小模式

    使用PictureBox显示图像需要注意的地方:

    (1)定PictureBox控件的图像可以设置Image属性,也可以设置ImageLocation属性。

    (2)区别在于Image属性是图像对象类型,而ImageLocation属性是图像路径,是文本类型。

    (3)右上角小三角“选择图像”,指定的是Image属性。

    二、图片集ImageList控件

    思考:PictureBox控件中只能存储一张图片,如果需要对多张图片进行展示,如何存储多张图片?

    我们可以使用图片集ImageList控件,用于存储多个图像资源,是一个图像集,通过索引访问图像集中的图片。

    ImageList控件的常用属性:

    属性 说明
    Images 存储在控件中的图像集合
    ImageSize 图像集中图像的大小,最大值为256*256
    ColorDepth 图像集中图像的颜色深度

    注意:

    (1)图像资源存储于Images属性中,它是一个图片集合。

    (2)图片集中的图像可通过其索引值或其键值进行访问。

    (3)所有图像都将以相同大小显示,由ImageSize属性设置。

    案例: 使用ImageList控件制作图片查看器

    0012.PNG
    实现步骤:

    (1)向ImageList控件中添加图像。

        【1】向窗体中添加图像集ImageList控件。
    
        【2】在设计器中, 点击其右上角的小三角,弹出快捷菜单。
    
        【3】选择需要添加的图片,并设置图片的大小和颜色深度。
    

    (2)展示ImageList控件中的图像。

        【1】按照截图效果,拖动控件,对图片浏览窗体进行布局。
    
        【2】窗体加载时,显示第一张图片,并将“上一张”按钮置为不可用。
    
    //图片浏览窗体Load事件处理函数
    private void ImageListForm_Load(object sender, EventArgs e)
    {
        //窗体加载后,默认显示第一张图片
        this.pic_animation.Image = this.imageList1.Images[0];
        //显示第一张图像,“上一张”按钮不可用
        this.btn_pre.Enabled = false;
    }
    
        【3】点击“上一张”、“下一张”按钮,实现图片切换效果。
    
    private int currentIndex = 0;
    private void btnPrev_Click(object sender, EventArgs e)
    {    
          currentIndex--; //当前图片索引减一
          SetButtonEnable(); //设置按钮是否可用
          //将当前图像显示到图片框中
          this.pic_animation.Image = this.imageList1.Images[currentIndex];
    }
    private void btnNext_Click(object sender, EventArgs e)
    {
         currentIndex++;        //当前图片索引加一
         SetButtonEnable();    //设置按钮是否可用
         //将当前图像显示到图片框中
         this.pic_animation.Image = this.imageList1.Images[currentIndex];
    }
    
        【4】编写判断“上一张”、“下一张”按钮是否可用的方法,提供给上一张,下一张按钮调用。
    
    private void SetButtonEnable()
    {
        this.btnPrev.Enabled = true;
        this.btnNext.Enabled = true;
        if(imgIndex == 0)
            this.btnPrev.Enabled = false;
        if (imgIndex == this.imageList1.Images.Count - 1)
            this.btnNext.Enabled = false;
    }
    

    三、计时器Timer控件

    按用户定义的时间间隔引发事件的控件,程序每隔一定时间重复执行一个操作。

    Timer控件的常用属性、方法和事件:

    属性 说明
    Interval 事件发生的间隔(频率),以毫秒为单位
    Enable 设置计时器是否启用,布尔类型
    方法 说明
    Start() 启动计时器
    Stop() 停止计时器
    事件 说明
    Tick 定时间隔到,自动引发的事件

    案例:使用Timer控件制作电子时钟

    0011.PNG
    实现步骤:

    (1)向窗体内添加标签Label控件,用于显示当前时间,并且设置Label控件的字体大小、颜色、字体等属性。

    (2)向窗体内添加计时器Timer控件,用于定时引发事件,指定间隔事件1秒:Interval属性设置为1000(单位:毫秒),添加Tick事件,在事件处理函数中更新当前时间。

    //窗体加载的时候显示时间
    private void TimerForm_Load(object sender, EventArgs e)
    {
        this.lbl_clock.Text = DateTime.Now.ToString("yyyy年MM月dd日 hh:mm:ss");
    }
    //每隔一秒钟显示时间
    private void timer1_Tick(object sender, EventArgs e)
    {
        //获取系统当前时间,格式化后,显示到Label中
        this.lbl_clock.Text = DateTime.Now.ToString("yyyy年MM月dd日HH:mm:ss");
    }
    

    (3)窗体加载后启动定时器
    方法1:设置Timer控件的Enable属性为true
    方法2:在窗体Load事件中使用timer控件.Start()方法启动定时器

    private void TimerForm_Load(object sender, EventArgs e)
    {
        this.timer1.Start();
    }
    

    四、系统托盘NotifyIcon控件

    0013.PNG

    软件启动后会在系统右下角创建一个小图标,称为系统托盘,当软件在后台运行时,可以通过系统托盘对软件进行相关操作。

    NotifyIcon控件的常用属性:

    属性 说明
    Icon 将在系统栏中显示的图标,必须为ico格式文件
    Text 当鼠标悬停在图标上时,显示的文本
    ContentMenuScript 与系统托盘图标相关联的右键快捷菜单

    案例:为之前的程序添加系统托盘

    需求:

    (1)程序运行后,在系统任务栏右下角启动托盘图标 。

    (2)鼠标悬停在图标上时,显示软件名称。

    (3)在系统托盘上点击右键,弹出右键快捷菜单,右键菜单包括“关于”和“退出”两个菜单项 ,点击"关于"弹出一个软件介绍的新窗体,点击"退出"退出整个应用程序。

    实现步骤:

    (1)向窗体中添加NotifyIcon控件,设置系统托盘的图标和文本。

    (2)向图片浏览窗体中加入右键快捷菜单ContextMenuScript,并且添加菜单项"关于"和"退出"。

    (3)设置NotifyIcon控件的ConTextMenuStrip属性,将右键快捷菜单与系统托盘关联。

    (4)编写菜单相应代码:

     //“关于”菜单项单击事件处理函数
     private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
     {
        FrmAbout frm = new FrmAbout();
        frm.show();
     }
     //“退出”菜单项单击事件处理函数
     private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
     {
        Application.Exit();
     }
    

    相关文章

      网友评论

          本文标题:03-Windows基础控件二

          本文链接:https://www.haomeiwen.com/subject/xnxzkltx.html