学习C#记录之第一天

来源:互联网 发布:购物软件大全 编辑:程序博客网 时间:2024/06/04 18:56



由于有C语言和java的基础,所以直接去看C#开发1200例,从例子中学习,只为熟练C#的控件api

第 一 天:

 windows窗体:

1.设置窗体启动位置:

        private void Form1_Load(object sender, EventArgs e)        {            this.StartPosition = FormStartPosition.CenterScreen;//居中显示        }



2.设置窗体位置:

          


3.从上次关闭位置启动窗体:

   private void Frm_Main_Load(object sender, EventArgs e)        {            RegistryKey myReg1, myReg2;//声明注册表对象            myReg1 = Registry.CurrentUser;//获取当前用户注册表项            try            {                myReg2 = myReg1.CreateSubKey("Software\\MySoft");//在注册表项中创建子项                this.Location = new Point(Convert.ToInt16(myReg2.GetValue("1")), Convert.ToInt16(myReg2.GetValue("2")));//设置窗体的显示位置            }            catch { }        }        private void Frm_Main_FormClosed(object sender, FormClosedEventArgs e)        {            RegistryKey myReg1, myReg2;//声明注册表对象            myReg1 = Registry.CurrentUser;//获取当前用户注册表项            myReg2 = myReg1.CreateSubKey("Software\\MySoft");//在注册表项中创建子项            try            {                myReg2.SetValue("1", this.Location.X.ToString());//将窗体关闭位置的x坐标写入注册表                myReg2.SetValue("2", this.Location.Y.ToString());//将窗体关闭位置的y坐标写入注册表            }            catch { }        }

4.始终置于桌面最顶层:

         只需将Topmost属性设置为True即可。

5.窗体边框风格解释:


代码设置:

   this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
6.根据桌面大小调整窗体:

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.自定义最大、小化和关闭按钮:


记得要将FromBorderstyle的属性设置为none来屏蔽窗体原有的按钮。然后添加两个panel,一个用于放三个按钮。另一个用于放置内容。

     #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);//设置鼠标移出后按钮的图片        }


8.使用户可手动改变窗体:

 这个功能在去除了窗体边框时需要注意,当取消了边框时用户就不能自由拉伸窗体了。所以我们要重写拉伸方法。

计算方法为:当前鼠标的x坐标值减去窗体左侧距桌面左侧的距离加上鼠标与边框右端的距离。

(以上方法应写在panel控件的mousemove方法内)

       public static int Example_X = 0;        public static int Example_Y = 0;        public static int Example_W = 0;        public static Point CPoint;        #region  利用窗体上的控件移动窗体        /// <summary>        /// 利用控件移动窗体        /// </summary>        /// <param Frm="Form">窗体</param>        /// <param e="MouseEventArgs">控件的移动事件</param>        public void FrmMove(Form Frm, MouseEventArgs e)  //Form或MouseEventArgs添加命名空间using System.Windows.Forms;        {            if (e.Button == MouseButtons.Left)            {                Point myPosittion = Control.MousePosition;//获取当前鼠标的屏幕坐标                myPosittion.Offset(CPoint.X, CPoint.Y);//重载当前鼠标的位置                Frm.DesktopLocation = myPosittion;//设置当前窗体在屏幕上的位置            }        }        #endregion        #region  获取鼠标的当前位置        /// <summary>        /// 获取鼠标的当前位置        /// </summary>        /// <param Frm="Form">窗体</param>        /// <param e="MouseEventArgs">窗体上有关鼠标的一些信息</param>        public void FrmScreen_SizeInfo(Form Frm, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)            {                Example_X = e.X;                Example_Y = e.Y;                Example_W = Frm.Width;            }        }        #endregion        #region  改变窗体的大小(用于鼠标的移动事件)        /// <summary>        /// 改变窗体的大小(用于鼠标的移动事件)        /// </summary>        /// <param Frm="Form">窗体</param>        /// <param Pan="Panel">设置窗体边框的控件</param>        /// <param e="MouseEventArgs">窗体上有关鼠标的一些信息</param>        public void FrmScreen_EnlargeSize(Form Frm, Panel Pan, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)            {                switch (Pan.Name)                {                    case "panel_Right"://如果移动的是窗体的右边框                        {                            if (this.Width <= 70)//如果窗体的宽度小于等于70                            {                                Frm.Width = 70;//设置窗体的宽度为70                                //如果用鼠标向右移动窗体的右边框                                if (Cursor.Position.X - Frm.Left + (Pan.Width - Example_X) > Frm.Width)                                {                                    //根据鼠标的移动值,增加窗体的宽度                                    Frm.Width = Cursor.Position.X - Frm.Left + (Pan.Width - Example_X);                                }                                break;                            }                            //根据鼠标的移动值,增加窗体的宽度                            Frm.Width = Cursor.Position.X - Frm.Left + (Pan.Width - Example_X);                            break;                        }                    case "panel_BR"://如果移动的是窗体的右下角                        {                            //如果窗体的大小不为窗体大小的最小值                            if (this.Width > 70 && this.Height > (panel_Title.Height + panel_Bn.Height + 1))                            {                                //根据鼠标的移动改变窗体的大小                                Frm.Height = Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y);                                Frm.Width = Cursor.Position.X - Frm.Left + (Pan.Width - Example_X);                            }                            else                            {                                if (this.Width <= 70)//如果窗体的宽度小于等于最小值                                {                                    Frm.Width = 70;//设置窗体的宽度为70                                    if (this.Height <= (panel_Title.Height + panel_Bn.Height + 1))//如果窗体的高小于最小值                                    {                                        Frm.Height = panel_Title.Height + panel_Bn.Height + 1;//设置窗体的最小高度                                        //如果用鼠标向下移动窗体的底边框                                        if (Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y) > Frm.Height)                                        {                                            //根据鼠标的移动值,增加窗体的高度                                            Frm.Height = Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y);                                        }                                        break;                                    }                                    //如果用鼠标向右移动窗体                                    if (Cursor.Position.X - Frm.Left + (Pan.Width - Example_X) > Frm.Width)                                    {                                        //增加窗体的宽度                                        Frm.Width = Cursor.Position.X - Frm.Left + (Pan.Width - Example_X);                                    }                                    break;                                }                                if (this.Height <= (panel_Title.Height + panel_Bn.Height + 1))//如果窗体的高度小于等于最小值                                {                                    Frm.Height = panel_Title.Height + panel_Bn.Height + 1;//设置窗体的高度为最小值                                    Frm.Width = Cursor.Position.X - Frm.Left + (Pan.Width - Example_X);//改变窗体的宽度                                    //如果用鼠标向下移动窗体的边框                                    if (Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y) > Frm.Height)                                    {                                        Frm.Height = Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y);//增加窗体的高度                                    }                                    break;                                }                            }                            break;                        }                    case "panel_Bn"://如果移动的是窗体的底边框                        {                            if (this.Height <= (panel_Title.Height + panel_Bn.Height + 1))//如果窗体的高度小于等于最小值                            {                                Frm.Height = panel_Title.Height + panel_Bn.Height + 1;//设置窗体的高度为最小值                                //如果用鼠标向下移动窗体的下边框                                if (Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y) > Frm.Height)                                {                                    Frm.Height = Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y);//增加窗体的高度                                }                                break;                            }                            Frm.Height = Cursor.Position.Y - Frm.Top + (Pan.Height - Example_Y);//增加窗体的高度                            break;                        }                }            }        }        #endregion


9.禁止改变窗体大小:

 只需要:

 this.MaximizeBox = false;//禁用最大化按钮            this.FormBorderStyle = FormBorderStyle.FixedDialog;//设置窗体边框样式为对话框样式


10.取消标题栏后巧妙设置可更改窗体大小:

 private void Frm_Main_Load(object sender, EventArgs e)        {            this.Text = "";//设置标题栏文本为空            ControlBox = false;//不在窗体标题栏中显示控件        }

11.使标题栏闪烁:

需要加一个Timer控件,其Intervar属性为间隔时间。

//重写API函数,用来实现窗体标题栏闪烁功能        [System.Runtime.InteropServices.DllImportAttribute("user32.dll")]        public static extern bool FlashWindow(IntPtr handle, bool bInvert);        private void timer1_Tick(object sender, EventArgs e)        {            FlashWindow(this.Handle,true);//启用窗体闪烁函数        }        private void button1_Click(object sender, EventArgs e)        {            timer1.Enabled = true;//启动计时器        }        private void button2_Click(object sender, EventArgs e)        {            timer1.Enabled = false;//关闭计时器        }

12.设置窗体背景图片:

  private void Frm_Main_Load(object sender, EventArgs e)        {            this.BackgroundImage = Image.FromFile("test.jpg");//设置窗体的背景图片        }

13.使背景图片适应窗体:


  private void Frm_Main_Load(object sender, EventArgs e)        {            this.BackgroundImage = Image.FromFile("test.jpg");//设置窗体的背景图片            this.BackgroundImageLayout = ImageLayout.Stretch;//使图片自动适应窗体大小        }


14.清空窗体的背景:


  private void btn_Clear_Click(object sender, EventArgs e)        {            Graphics graphics = this.CreateGraphics();//创建绘图对象            graphics.Clear(Color.White);//清空背景            graphics.Dispose();//释放绘图资源        }


下一章:

15. 控件的相关api:


menustrip控件 主要用于为软件设置主菜单。


toolstrip控件用来设计工具栏。


statustrip控件用来设计状态栏。


Imagelist控件和Treeview控件组合用来设计树结构。


在添加一个imagelist控件并在Treeview属性中找到imagelist这一项设置为已添加的imagelist.



16.导航菜单:



首先添加一个splitContainer控件,可以将主界面分成两部分。

再添加三个按钮和一个listview ,如果需要图片再加一个imagelist。效果如上,代码如下:

 private void Form1_Load(object sender, EventArgs e)        {            listView1.Clear();//清空listView1中的原有内容            listView1.LargeImageList = imageList1;//设置当前项以大图标的形式显示时用到的图像            listView1.Items.Add("设置上下班时间", "设置上下班时间", 0);//向listView1中添加项“设置上下班时间”            listView1.Items.Add("是否启用短信提醒", "是否启用短信提醒", 1);//向listView1中添加项“是否启用短信提醒”            listView1.Items.Add("设置密码", "设置密码", 2);//向listView1中添加项“设置密码”        }        private void button1_Click_1(object sender, EventArgs e)        {            listView1.Dock = DockStyle.None;//设置listView1的绑定属性为未绑定            button1.Dock = DockStyle.Top;//设置button1的绑定属性为上端绑定            button2.Dock = DockStyle.Bottom;//设置button2的绑定属性为底端绑定            button3.SendToBack();//将button3发送到Z顺序的后面            button3.Dock = DockStyle.Bottom;//设置button3的绑定属性为底端绑定            listView1.BringToFront();//将listView1带到Z顺序的前面            this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)                          | System.Windows.Forms.AnchorStyles.Left)                          | System.Windows.Forms.AnchorStyles.Right)));            listView1.Dock = DockStyle.Bottom;//设置listView1的绑定属性为底端绑定            listView1.Clear();//清空listView1中的原有内容            listView1.Items.Add("设置上下班时间", "设置上下班时间", 0);//向listView1中添加“设置上下班时间”            listView1.Items.Add("是否启用短信提醒", "是否启用短信提醒", 1);//向listView1中添加“是否启用短信提醒”            listView1.Items.Add("设置密码", "设置密码", 2);//向listView1中添加“设置密码”        }        private void button2_Click_1(object sender, EventArgs e)        {            listView1.Dock = DockStyle.None;//设置listView1的绑定属性为未绑定            button2.Dock = DockStyle.Top;//设置button2的绑定属性为上端绑定            button1.SendToBack();//将控件button1发送到Z顺序的后面            button1.Dock = DockStyle.Top;//设置button1的绑定属性为上端绑定            button3.Dock = DockStyle.Bottom;//设置button3的绑定属性为底端绑定            this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)                         | System.Windows.Forms.AnchorStyles.Left)                         | System.Windows.Forms.AnchorStyles.Right)));            listView1.Dock = DockStyle.Bottom;//设置listView1的绑定属性为底端绑定            listView1.Clear();//清空listView1中的原有内容            listView1.Items.Add("近期工作记录", "近期工作记录", 3);//向listView1中添加“近期工作记录”            listView1.Items.Add("近期工作计划", "近期工作计划", 4);//向listView1中添加“近期工作计划”        }        private void button3_Click_1(object sender, EventArgs e)        {            listView1.Dock = DockStyle.None;//设置listView1的绑定属性为未绑定            button3.SendToBack();//将button3发送到Z顺序的后面            button3.Dock = DockStyle.Top;//设置button3的绑定属性为上端绑定            button2.SendToBack();//将button2发送到Z顺序的后面            button2.Dock = DockStyle.Top;//设置button2的绑定属性为上端绑定            button1.SendToBack();//将button1发送到Z顺序的后面            this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)                         | System.Windows.Forms.AnchorStyles.Left)                         | System.Windows.Forms.AnchorStyles.Right)));            button1.Dock = DockStyle.Top;//设置button1的绑定属性为上端绑定            listView1.Dock = DockStyle.Bottom;//设置listView1的绑定属性为底端绑定            listView1.Clear();//清空listView1中的原有内容            listView1.Items.Add("编辑工作进度报告", "编辑工作进度报告", 5);//向listView1中添加“编辑工作进度报告”            listView1.Items.Add("编辑项目设计图", "编辑项目设计图", 6);//向listView1中添加“编辑项目设计图”        }

自己做了一下,好奇那个Imagelist图像的资源文件在哪。找了半天没找到。点了一下imagelist上的小箭头,发现了一些东西。


点击选择图像,就找到了。然后在工程\obj\Release\TempPE,找到了一个Properties.Resources.Designer.cs.dll的文件,我猜是图像被编译进去了。以一个二进制码的形式。也不知道是不是这样,如果不是提醒 我一下。


17.图形化导航界面:


这个相对简单很多。用到button的image属性,如果需要调整图片和文本的位置可以用textimagerelation。就可以了


18.创建非矩形窗体:


    Bitmap bit;//声明一个Bitmap位图对象        public Frm_Main()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            bit = new Bitmap("bccd.png");//从指定的图像初始化Bitmap对象            bit.MakeTransparent(Color.Blue);//使用默认的透明颜色对Bitmap位图透明        }        protected override void OnPaint(PaintEventArgs e)        {            e.Graphics.DrawImage((Image)bit, new Point(0, 0));//在窗体上绘制图片        }
要添加关闭操作可以在界面中添加一个label控件,不影响透明,在点击事件中设置一下关闭操作。


19.创建字体窗体。

 我觉得有点像歌词那个控件。


原有例子只是把一个有文字的图片显示出来 而已(这也太。。)。自己又添了一段。

    Bitmap bit;//声明位图对象        public Frm_Main()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            bit = new Bitmap("font.bmp");//从指定的图像初始化Bitmap类对象            bit.MakeTransparent(Color.Blue);//使用默认的透明颜色对Bitmap位图透明        }        protected override void OnPaint(PaintEventArgs e)        {            e.Graphics.DrawImage((Image)bit, new Point(0, 0));//在指定位置按指定大小绘制图片的指定部分\            e.Graphics.DrawString("你好,C#!", new Font("Verdana", 20), new SolidBrush(Color.Tomato), 40, 40); //在指定位置按指定大小绘制文字        }

20.设置渐显窗体:

一听到逐渐就少不了timer这个控件。

   private void timer1_Tick(object sender, EventArgs e)        {            this.Opacity += 0.1;//设置窗体的不透明级别        }


21.绘制渐变色窗体:



这个不是图片要是图片的话我就不写了。

这是通过一个算法画上去,觉得对画刷这种可以多了解一下。

需要覆写Onpaintbackground方法

 protected override void OnPaintBackground(PaintEventArgs e)        {            int intLocation, intHeight;//定义两个int型的变量intLocation、intHeight             intLocation = this.ClientRectangle.Location.Y;//为变量intLocation赋值            intHeight = this.ClientRectangle.Height / 200;//为变量intHeight赋值            for (int i =255; i >= 0; i--)            {                Color color = new Color();//定义一个Color类型的实例color                //为实例color赋值                color = Color.FromArgb(1, i, 100);                SolidBrush SBrush = new SolidBrush(color);//实例化一个单色画笔类对象SBrush                Pen pen = new Pen(SBrush, 1);//实例化一个用于绘制直线和曲线的对象pen                e.Graphics.DrawRectangle(pen, this.ClientRectangle.X, intLocation, this.Width, intLocation + intHeight);//绘制图形                intLocation = intLocation + intHeight;//重新为变量intLocation赋值            }        }


22.随机设置窗体背景图片:

设置背景图片没有什么新鲜的,就是随机这个部分还是写一下吧。

private void Frm_Main_Load(object sender, EventArgs e)        {            //定义一个字符串数组,用来存储背景图片列表            string[] strImages = new string[] { "01.jpg", "02.jpg", "03.jpg", "04.jpg", "05.jpg" };            Random rdn = new Random();//定义一个伪随机数生成器对象            int intIndex = rdn.Next(0, strImages.Length - 1);//产生一个随机数            this.BackgroundImage = Image.FromFile(strImages[intIndex]);//设置窗体的背景图片            this.BackgroundImageLayout = ImageLayout.Stretch;//设置背景图片拉伸显示        }

23.磁性窗体:

这个常见于音乐播放器,就是歌词啊,平衡性有好几个窗口这部分。个人很感兴趣。

果然是越漂亮代码越多。。在这里就写出一部分了。因为代码也都差不多

#region  公共变量        FrmClass Cla_FrmClass = new FrmClass();        public static Form F_List = new Form();        public static Form F_Libretto = new Form();        public static Form F_Screen = new Form();        #endregion        private void Frm_Play_Load(object sender, EventArgs e)        {            //窗体位置的初始化            Cla_FrmClass.FrmInitialize(this);        }        private void panel_Title_MouseDown(object sender, MouseEventArgs e)        {            int Tem_Y = 0;            if (e.Button == MouseButtons.Left)//按下的是否为鼠标左键            {                Cla_FrmClass.FrmBackCheck();//检测各窗体是否连在一起                Tem_Y = e.Y;                FrmClass.FrmPoint = new Point(e.X, Tem_Y);//获取鼠标在窗体上的位置,用于磁性窗体                FrmClass.CPoint = new Point(-e.X, -Tem_Y);//获取鼠标在屏幕上的位置,用于窗体的移动                if (FrmClass.Example_List_AdhereTo)//如果与frm_ListBox窗体相连接                {                    Cla_FrmClass.FrmDistanceJob(this, F_List);//计算窗体的距离差                    if (FrmClass.Example_Assistant_AdhereTo)//两个辅窗体是否连接在一起                    {                        Cla_FrmClass.FrmDistanceJob(this, F_Libretto);//计算窗体的距离差                    }                }                if (FrmClass.Example_Libretto_AdhereTo)//如果与frm_Libretto窗体相连接                {                    Cla_FrmClass.FrmDistanceJob(this, F_Libretto);//计算窗体的距离差                    if (FrmClass.Example_Assistant_AdhereTo)//两个辅窗体是否连接在一起                    {                        Cla_FrmClass.FrmDistanceJob(this, F_List);//计算窗体的距离差                    }                }            }        }        private void panel_Title_MouseMove(object sender, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)//按下的是否为鼠标左键            {                Cla_FrmClass.FrmMove(this, e);//利用控件移动窗体                if (FrmClass.Example_List_AdhereTo)//如果frm_ListBox窗体与主窗体连接                {                    Cla_FrmClass.ManyFrmMove(this, e, F_List);//磁性窗体的移动                    Cla_FrmClass.FrmInitialize(F_List);//对frm_ListBox窗体的位置进行初始化                    if (FrmClass.Example_Assistant_AdhereTo)//如果两个子窗体连接在一起                    {                        Cla_FrmClass.ManyFrmMove(this, e, F_Libretto);                        Cla_FrmClass.FrmInitialize(F_Libretto);                    }                }                if (FrmClass.Example_Libretto_AdhereTo)//如果frm_Libretto窗体与主窗体连接                {                    Cla_FrmClass.ManyFrmMove(this, e, F_Libretto);                    Cla_FrmClass.FrmInitialize(F_Libretto);                    if (FrmClass.Example_Assistant_AdhereTo)                    {                        Cla_FrmClass.ManyFrmMove(this, e, F_List);                        Cla_FrmClass.FrmInitialize(F_List);                    }                }                Cla_FrmClass.FrmInitialize(this);            }        }        private void panel_Title_MouseUp(object sender, MouseEventArgs e)        {            Cla_FrmClass.FrmPlace(this);        }        private void Frm_Play_Shown(object sender, EventArgs e)        {            //显示列表窗体            F_List = new Frm_ListBox();            F_List.ShowInTaskbar = false;            FrmClass.Example_ListShow = true;            F_List.Show();            //显示歌词窗体            F_Libretto = new Frm_Libretto();            F_Libretto.ShowInTaskbar = false;            FrmClass.Example_LibrettoShow = true;            F_Libretto.Show();            F_Libretto.Left = this.Left + this.Width;            F_Libretto.Top = this.Top;            //各窗体位置的初始化            Cla_FrmClass.FrmInitialize(F_List);            Cla_FrmClass.FrmInitialize(F_Libretto);        }        private void panel_Close_Click(object sender, EventArgs e)        {            F_List.Close();            F_List.Dispose();            F_Libretto.Close();            F_Libretto.Dispose();            F_Screen.Close();            F_Screen.Dispose();            this.Close();        }        private void panel_Title_Click(object sender, EventArgs e)        {            F_List.Focus();            F_Libretto.Focus();            this.Focus();        }


额,,今天就先学到这吧。。一天了还没学到控件的 部分呢。。明天应该调整一下了。有针对 性的学一下接下来开发中需要用到的控件 。










原创粉丝点击