[C#自学视频]认识windows窗体

7.4.1  根据桌面大小调节窗体大小

namespace SetFormSizeByDeskSize
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void Frm_Main_Load(object sender, EventArgs e)
        {
            int DeskWidth = Screen.PrimaryScreen.WorkingArea.Width;//获取桌面宽度
            int DeskHeight = Screen.PrimaryScreen.WorkingArea.Height;//获取桌面高度
            this.Width = Convert.ToInt32(DeskWidth * 0.8);//设置窗体宽度
            this.Height = Convert.ToInt32(DeskHeight * 0.8);//设置窗体高度
        }
    }
}

7.4.2 自定义最大化、最小化和关闭按钮

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ControlFormStatus
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void Frm_Main_Load(object sender, EventArgs e)
        {
            this.Width = Properties.Resources.登录界面标题.Width;//设置体的宽度
            this.Height = Properties.Resources.登录界面标题.Height + Properties.Resources.登录界面下面.Height;//设置窗体的高度
            panel_Title.BackgroundImage = Properties.Resources.登录界面标题;//显示窗体标题栏的图片
            panel_ALL.BackgroundImage = Properties.Resources.登录界面下面;//显示窗体标题栏下同的图片
            pictureBox_Min.Image = null;//清空PictuteBox控件
            pictureBox_Min.Image = Properties.Resources.最小化按钮;//显示最小化按钮的图片
            pictureBox_Max.Image = null; //清空PictuteBox控件
            pictureBox_Max.Image = Properties.Resources.最大化按钮;//显示最大化按钮的图片
            pictureBox_Close.Image = null;//清空PictuteBox控件
            pictureBox_Close.Image = Properties.Resources.关闭按钮;//显示关闭按钮的图片
        }

        #region  设置窗体的最大化、最小化和关闭按钮的单击事件
        /// <summary>
        /// 设置窗体的最大化、最小化和关闭按钮的单击事件
        /// </summary>
        /// <param Frm_Tem="Form">窗体</param>
        /// <param n="int">标识</param>
        public void FrmClickMeans(Form Frm_Tem, int n)
        {
            switch (n)//窗体的操作样式
            {
                case 0://窗体最小化
                    Frm_Tem.WindowState = FormWindowState.Minimized;//窗体最小化
                    break;
                case 1://窗体最大化和还原的切换
                    {
                        if (Frm_Tem.WindowState == FormWindowState.Maximized)//如果窗体当前是最大化
                            Frm_Tem.WindowState = FormWindowState.Normal;//还原窗体大小
                        else
                            Frm_Tem.WindowState = FormWindowState.Maximized;//窗体最大化
                        break;
                    }
                case 2:    //关闭窗体
                    Frm_Tem.Close();
                    break;
            }
        }
        #endregion

        #region  控制图片的切换状态
        /// <summary>
        /// 控制图片的切换状态
        /// </summary>
        /// <param sender =" object ">要改变图片的对象</param>
        /// <param n="int">标识</param>
        /// <param ns="int">移出移入标识</param>
        public static PictureBox Tem_PictB = new PictureBox();//实例化PictureBox控件
        public void ImageSwitch(object sender, int n, int ns)
        {
            Tem_PictB = (PictureBox)sender;
            switch (n)//获取标识
            {
                case 0://当前为最小化按钮
                    {
                        Tem_PictB.Image = null;//清空图片
                        if (ns == 0)//鼠标移入
                            Tem_PictB.Image = Properties.Resources.最小化变色;
                        if (ns == 1)//鼠标移出
                            Tem_PictB.Image = Properties.Resources.最小化按钮;
                        break;
                    }
                case 1://最大化按钮
                    {
                        Tem_PictB.Image = null;
                        if (ns == 0)
                            Tem_PictB.Image = Properties.Resources.最大化变色;
                        if (ns == 1)
                            Tem_PictB.Image = Properties.Resources.最大化按钮;
                        break;
                    }
                case 2://关闭按钮
                    {
                        Tem_PictB.Image = null;
                        if (ns == 0)
                            Tem_PictB.Image = Properties.Resources.关闭变色;
                        if (ns == 1)
                            Tem_PictB.Image = Properties.Resources.关闭按钮;
                        break;
                    }
            }
        }
        #endregion

        private void pictureBox_Close_Click(object sender, EventArgs e)//单击事件
        {
            FrmClickMeans(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//设置鼠标单击时按钮的图片
        }
        private void pictureBox_Close_MouseEnter(object sender, EventArgs e)//鼠标移入事件
        {
            ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);//设置鼠标移入后按钮的图片
        }
        private void pictureBox_Close_MouseLeave(object sender, EventArgs e)//鼠标移出事件
        {
            ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 1);//设置鼠标移出后按钮的图片
        }
    }
}

7.4.3  窗体换肤程序

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WinCusSkin
{
    public partial class Frm_Main  : Form
    {

        String strImagesPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
        int top, left, hei, wid;
        bool bol = false, bo = false, bolTop = false, bolLeft = false, bolRight = false, bolBottom = false, bolLeftCornu = false, bolRightCornu = false;
        int x = 0, y = 0;

        public Frm_Main()
        {
            InitializeComponent();
        }

        //关闭事件。
        private void picClose_Click(object sender, System.EventArgs e)
        {
            Application.Exit();
        }
        //最大化事件。
        private void picMaximize_Click(object sender, System.EventArgs e)
        {
            if (!bol)
            {
                top = this.Top;
                left = this.Left;
                hei = this.Height;
                wid = this.Width;
                this.Top = 0;
                this.Left = 0;
                int hg = SystemInformation.MaxWindowTrackSize.Height;
                int wh = SystemInformation.MaxWindowTrackSize.Width;
                this.Height = hg;
                this.Width = wh;
                bol = true;
                if (menItemSkin1.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max.png");
                if (menItemSkin2.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max.png");
                if (menItemSkin3.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max.png");
            }
            else
            {
                this.Top = top;
                this.Left = left;
                this.Height = hei;
                this.Width = wid;
                bol = false;
                if (menItemSkin1.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max_Normal.png");
                if (menItemSkin2.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max_Normal.png");
                if (menItemSkin3.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max_Normal.png");
            }
        }
        //最小化事件。
        private void picMinimize_Click(object sender, System.EventArgs e)
        {
            top = this.Top;
            left = this.Left;
            hei = this.Height;
            wid = this.Width;
            this.Height = 0;
            this.Width = 0;
            bo = true;
        }
        //窗口再次被激活时。
        private void FormCusSkin_Activated(object sender, System.EventArgs e)
        {
            if (bo)
            {
                this.Top = top;
                this.Left = left;
                this.Height = hei;
                this.Width = wid;
                bo = false;
            }
        }
        //选择关闭。
        private void mItemColse_Click(object sender, System.EventArgs e)
        {
            Application.Exit();
        }
        //上边框鼠标按下。
        private void panel_Top_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            this.bolTop = true;
        }
        //上边框鼠标移动。
        private void panel_Top_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolTop)
            {
                this.Top += e.Y - y;
                this.Left += e.X - x;
            }
        }
        //上边框鼠标释放。
        private void panel_Top_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolTop = false;
        }
        //左边框鼠标按下。
        private void panel_Left_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            this.bolLeft = true;
        }
        //左边框鼠标移动。
        private void panel_Left_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolLeft)
            {
                this.Width += x - e.X;
                this.Left += e.X - x;
            }
        }
        //左边框鼠标离开。
        private void panel_Left_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolLeft = false;
        }
        //右边框鼠标按下。
        private void panel_Right_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            this.bolRight = true;
        }
        //右边框鼠标移动。
        private void panel_Right_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolRight)
            {
                this.Width += e.X - x;
            }
        }
        //右边框鼠标离开。
        private void panel_Right_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolRight = false;
        }
        //下边框鼠标按下。
        private void panel_Bottom_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            y = e.Y;
            this.bolBottom = true;
        }
        //下边框鼠标移动。
        private void panel_Bottom_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolBottom)
            {
                this.Height += e.Y - y;
            }
        }
        //下边框鼠标离开。
        private void panel_Bottom_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolBottom = false;
        }
        //左下角鼠标按下。
        private void panelLeftCornu_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            this.bolLeftCornu = true;
        }
        //左下角鼠标移动。
        private void panelLeftCornu_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolLeftCornu)
            {
                this.Width += x - e.X;
                this.Left += e.X - x;
                this.Height += e.Y - y;
            }
        }
        //左下角鼠标离开。
        private void panelLeftCornu_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            this.bolLeftCornu = false;
        }
        //右下角鼠标按下。
        private void panelRightCornu_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolRightCornu = true;
        }
        //右下角鼠标移动。
        private void panelRightCornu_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolRightCornu)
            {
                this.Width += e.X - x;
                this.Height += e.Y - y;
            }
        }
        //右下角鼠标离开。
        private void panelRightCornu_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolRightCornu = false;
        }

        private void FormCusSkin_Load(object sender, EventArgs e)
        {
            menItemSkin2_Click(sender, e);//默认蓝色经典
        }

        private void menItemSkin1_Click(object sender, EventArgs e)
        {
            this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\top.png");
            this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\left.png");
            this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\right.png");
            this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\bottom.png");
            this.picMinimize.Image = Image.FromFile(strImagesPath + @"\images\purple\min.png");
            if (bol == true)
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max.png");
            }
            else
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max_normal.png");
            }
            this.picClose.Image = Image.FromFile(strImagesPath + @"\images\purple\close.png");
            this.menItemSkin1.Checked = true;
            this.menItemSkin2.Checked = false;
            this.menItemSkin3.Checked = false;
            this.menuStrip1.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\menu.gif");
            this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\background.gif");
        }

        private void menItemSkin2_Click(object sender, EventArgs e)
        {
            this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\top.png");
            this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\left.png");
            this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\right.png");
            this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\bottom.png");
            this.picMinimize.Image = Image.FromFile(strImagesPath + @"\images\blue\min.png");
            if (bol == true)
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max.png");
            }
            else
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max_normal.png");
            }
            this.picClose.Image = Image.FromFile(strImagesPath + @"\images\blue\close.png");
            this.menItemSkin1.Checked = false;
            this.menItemSkin2.Checked = true;
            this.menItemSkin3.Checked = false;
            this.menuStrip1.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\menu.gif");
            this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\background.gif");
        }

        private void menItemSkin3_Click(object sender, EventArgs e)
        {
            this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\top.png");
            this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\left.png");
            this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\right.png");
            this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\bottom.png");
            this.picMinimize.Image = Image.FromFile(strImagesPath + @"\images\green\min.png");
            if (bol == true)
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max.png");
            }
            else
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max_normal.png");
            }
            this.picClose.Image = Image.FromFile(strImagesPath + @"\images\green\close.png");
            this.menItemSkin1.Checked = false;
            this.menItemSkin2.Checked = false;
            this.menItemSkin3.Checked = true;
            this.menuStrip1.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\menu.gif");
            this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\background.gif");
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void panel_Top_DoubleClick(object sender, EventArgs e)
        {
            picMaximize_Click(sender, e);
        }
    }
}
时间: 2024-08-27 23:43:56

[C#自学视频]认识windows窗体的相关文章

C#语言第一课-Windows窗体基本功能(Login登录界面)

本菜鸟由于实习工作的原因,不得不快速接触C#语言,刚刚好又要做毕业设计,所以就通过自学的方式一举两得地完成这两件事情. 故此文字记录或代码中的各种文件名之类均是以毕业设计为模版记录的,看着不方便之处请海涵.(毕竟菜鸟的我暂时还不能把代码写的特别规范) 在学习过程中以日记或者周记的方式记录我遇见的问题和各种学习到的知识以此来巩固,如果有和我一样情况的志同道合的菜鸟,那我们就一起相互交流和学习吧~ 文字记录的错处或者可以优化的地方,如果有大神看见,更希望不吝赐教~ 毕业设计的大概模型是类似QQ的聊天

用于列出选项的Windows窗体控件

可以提供选项列表的控件有ListBox.ComboBox.CheckedListBox,如何正确的使用和选择这些控件,下面对此进行讨论.首先对这三种控件的功能分别进行说明: ListBox ListBox用于显示项列表,用户可以从中选择一项或多项.如果项目总数超出可以显式的项目数,则ListBox会自动添加滚动条.当MultiColumn属性为true时,列表框以多列形式显示条目,并且会出现一个水平滚动条.当MultiColumn为false时,列表框以单列形式显示条目,并且会出现一个垂直滚动条

实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624.aspx  译 Q:77811970 实现虚拟模式的原因之一 DataGridView控制只检索数据,因为它是必要的. 这就是所谓的 即时数据加载 . 如果你正在与一个非常大的表在一个远程数据库,例如,您可能希望避免启动延迟,只检索所需的数据显示和检索额外的数据只有当用户新行滚动到视图. 如果客户

API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

[原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface.Windows操作系统提供给应用程序编程的接口, 简称 为API函数. Win32 SDK:SDK(Software Development Kit)中文是软件开发包.则Win32 SDK是Windows 32位平台下的软件开发包,包括了API函数.帮助文档.微软 提供的一些辅助开发工具. Win3

如何跨线程调用Windows窗体控件

通过一个子线程来操作主线程中的控件,但是,这样作会出现一个问题(如图1所示),就是TextBox控件是在主线程中创建的,在子线程中并没有对其进行创建,也就是从不是创建控件的线程访问它.那么,如何解决跨线程调用Windows窗体控件呢?可以用线程委托实现跨线程调用Windows窗体控件.下面将上一个例子进行一下改动.代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using Sys

华为HCNA网络工程师【从入门到精通】自学视频

课程目标:培养实战型网络工程师适合人群:初级华为网络工程师.网管.在校大学生以及零基础学员和准备考取华为HCNA/华为HCNP的技术人员.课程介绍:本课程涉及计算机网络基础知识.企业网常用技术介绍.华为路由器和华为交换机配置以及网络运维和系统集成常用知识,常用工具介绍.华为模拟器介绍.华为资料和手册.本课程详细讲解大中型企业网络组建.华为网络设备调试.数据包结构.OSI模型.TCP/IP模型.IP编址.IP子网划分.TCP.UDP.ICMP.H3C命令行简介.STP.MSTP.VLAN.Trun

[King.yue]Ext.net 弹出Windows窗体注意的事项

页面的控件ID不能重复,否则会覆盖原控件. [King.yue]Ext.net 弹出Windows窗体注意的事项,布布扣,bubuko.com

C# windows 窗体的基本属性设置

◆Form.StartPosition属性,确定窗体第一次出现时的位置.这里设置为在父窗体的中间显示. this.StartPosition = FormStartPosition.CenterParent; ◆Form.HelpButton属性,确定窗体的标题栏上是否有“帮助”按钮.设置显示,看上去更人性化,但实际不一定会对帮助功能进行实现. this.HelpButton = true; ◆Form.MaximizeBox属性,确定窗体标题栏的右上角是否有最大化框.设置不让她显示. this

Windows窗体应用布局详解

上回我们已经会用基本的控件创建Windows窗体应用,这才我们再来认识一些高级控件并使用ADO.NET技术连接数据库来创建功能更坚强大的窗体应用! 菜单栏控件MenuStrip .NET中提供了一个MenuStrip(菜单栏控件)如图,  使我们能够方便地创建菜单. 菜单栏控件的主要属性         属性                                说明       Name                                代码中菜单对象的名称       I