学习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;//设置窗体边框样式为对话框样式
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;//使图片自动适应窗体大小 }
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;//设置窗体的不透明级别 }
这个不是图片要是图片的话我就不写了。
这是通过一个算法画上去,觉得对画刷这种可以多了解一下。
需要覆写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(); }
额,,今天就先学到这吧。。一天了还没学到控件的 部分呢。。明天应该调整一下了。有针对 性的学一下接下来开发中需要用到的控件 。
- 学习C#记录之第一天
- 记录学习第一天-c#
- 学习记录第一天
- 第一天学习记录
- C#入门学习篇之第一天
- 学习C#第一天
- 学习C#第一天
- 第一天学习C#
- c#学习第一天
- C#学习第一天
- C# 学习第一天
- android 学习记录 第一天
- 【记录学习linux】第一天
- 第一天git学习记录
- 记录JavaScript学习第一天
- python 第一天学习记录
- Struts2 学习记录-第一天
- 记录博客学习第一天!!
- 新项目开发经验教训
- Android SurfaceFlinger服务的消息循环过程源码分析
- ubuntu更新源
- Hadoop 2.2.0 单节点安装
- 算法导论 第7章 快速排序 学习总结
- 学习C#记录之第一天
- Latex初学者入门(三)-- 用BibTeX生成参考文献
- UVA 11181 Probability|Given dfs模拟组合情况(周赛F题)
- H.264学习(一)——帧和场的概念
- JAVA系列-设计模式-适配器模式
- 学习js
- python自然语言处理学习笔记第三章2
- H.264视频RTP负载格式/NALU的类型
- mysql errno:150