• .net窗体程序的基础知识及详细笔记


    第一章:初识Windows程序

    1.1:第一个wondows程序

    1.1.1:认识windows程序

      Form1.cs:窗体文件:程序对窗体编写的代码一般都存放在这个文件(还有拖动控件时的操作和布局,还有设置一般的属性)      F4:跳到设置属性的界面  F7:跳到逻辑代码文件

      From.Designer.cs:窗体设计文件:一般拖动控件自动生成的文件(很少修改)

      From.resx:资源文件:配置图片等资源。

       Program.cs: 主程序文件:包含main方法的程序入口,如果要改执行的窗体直接run后面的文件名

    Public  partial   class  Form1:Form

    {

             //这个相当于partial是部分意思,,他继承了Form文件的所有属性和方法(:表示继承)

    }

    属性

    说明

    Name

    窗体对象的名称,用来在代码中标识

    BackColor

    窗体的背景颜色

    BackgroundImage

    窗体的背景图片

    FormBorderStyle

    窗体边框的样式

    MaximinzeBox

    窗体是否最大化

    ShowIntaskBar

    窗体是否出现Windows任务栏

    StartPosition

    窗体第一次出先的位置

    Text

    窗体标题栏显示的文本

    TopMost

    Xz显示在某个窗体之上

    WindowState

    窗体的初始化状态  包括MaxMinzed(最大化) Minmized(最小化)

    方法

    说明

    Close()

    关闭窗体

    Show()

    显示窗体

    ShowDiaLog()

    模式化窗体    (如果打开了,只有关闭了此窗体,其他窗体才能操作)

    Hide()

    隐藏窗体

    1.1.3:基本控件

      标签(label):用于显示不能编辑的文本或图像 ,常用来在窗体上的其他控件做标注或说明

    属性

    说明

    Image

    在标签上显示的图片

    Text

    在标签上显示的文本

      文本框(TextBox)用于获得用户输入的信息和用户显示的文本

    MaxLength

    指定可以在文本框输入的最大字符

    Multiline

    表示是否可以在文本框输入多行文本

    PasswordChar

    输入的字符可以用一个符号或者什么来替换(属性值可以是*,输入实际的就可以隐藏)

    ReadOnly

    指定是否可以编辑(只读)

    Text

    与文本框关联的文本

      组合框(ComboBox):先当于下拉框和文本框的结合体。可以输入文本或进行选择

    Items

    组合框的项

    DropDownStyle

    组合框的风格  一般(DropDownList)只能下拉

    Text

    与组合框关联的文本

    SelectedIndex

    当前选中的索引(下标),从0开始 (返回int类型)

    SelectedItem

    获取选中的项,返回object类型,返回选中项的值

    事件

    说明

    Click

    单击事件

    SelectedIndexChanged

    选中项后发生的事件

      按钮(button):用户通过点击来进行操作

    Endable

    返回bool类型的值,控件是否可用

    Text

    按钮上显示的文本值

    TextAlign

    按钮上文本的对齐方式

    事件

    说明

    Click

    点击事件

    1.2:事件的处理

    1.单击要创建处理的控件(双击直接完成,然后跳转,直接写代码)

    2:在属性找到事件的标志(闪电)

    3:双击要处理的事件

    4:编写处理的逻辑代码        (This:代表当前窗体)

    1.3:增强窗体的友好性

    1.3.1:Messagebox消息框(返回的是一个DiaLogresult类型的值)

      语法:MessageBox.Show(显示的提示字符串,消息的标题,消息框的按钮,消息框图片)

    例子:

    • ·DiaLogResult result=MessageBox.Show( “确定要退出吗?”,”操作提示”,messageBoxButtons.YesNo,   MessageBoxIcon.Question  );

    If(result==DialogResult.yes)

    {

             This.Close();

    }

    1.3.3:窗体体的跳转

    语法:

    按钮下的事件

      先确定即将跳转的窗体的名字:

    FrmADminMain(跳转的窗体) frmAmdin =new  FrmADminMain();    //创建一个窗体对象

    FrmAmdin.Show();       //显示此窗体

    This.Hide();      //隐藏当前窗体

    1.3.4:窗体间的数据传递

      在即将跳转的(下一个)窗体申明一个空的字符串   String name=string.Empty

      在(本)窗体的 代码

     FrmADminMain(跳转的窗体) frmAmdin =new  FrmADminMain();    //创建一个窗体对象

    frmAmdin.name=textuserName.text,trim();    //把这边的文本的值传递给下一个窗体的name属性

    FrmAmdin.Show();       //显示此窗体

    This.Hide();      //隐藏当前窗体

       

    第二章:构建良好的windows程序

    2.1:使用菜单栏和工具栏

    2.1.1:菜单栏的控件MenuStrip

    属性

    说明

    Name

    代码中菜单对象的名称

    Items

    在菜单中显示的集合

    Text

    与菜单相关的文本

      菜单项的主要属性

    属性

    说明

    Name

    代码中菜单项的名称

    DropDownItems

    在子菜单中显示的项的集合

    text

    与菜单项相关的文本

    事件

    说明

    Click

    点击事件

    Application   Exit();    //退出程序方法

    This.close()     //退出当前窗体方法

      分割线的做法:减号(-),回车

      快捷键:(&A-Z)    

    2.1.3:使用工具栏控件ToolStrip

      工具栏的属性

    属性

    说明

    ImageScalingsize

    工具栏显示图片的大小

    Items

    工具栏的项的集合

      工具栏上面的按钮和标签的主要属性和事件

      DisplayStyle

      图像和文本的显示方式,包括文本,图片,和什么都不显示

      Image

      按钮或标签的图片

      Imagescaling

      是否调整按钮或标签上的图片大小

      text

      显示的文本

      TextImageRelation

      按钮和图片的显示相对位置

      Click

      点击事件

       

       

    2.2:使用windows的基本控件

    2.2.1:使用窗体的基本控件

      单选按钮(radiobutton):选择的项的集合

      Checked

      指示是否被选中(Radio.checked==true)表示已选中

      Text

      按钮上的文本

      事件

       

      Click

      点击事件

      分组框(GroupBox)和panel容器

    GroupBox

    Panel

    用于逻辑上一组控件

    为了易于操作,把多个控件放在一起

      日期控件(DataTimePicker):功选择日期的控件

    属性

    说明

    Maxdate

    取得的最大日期

    Mindate

    取得的最小日期

    Value

    日期的值(相当于Text)

    Format

    用于设置格式

    2.2.2:排列窗体的控件

      Anchor:如果锚定了 ,各边距就会不会改变(选中深灰),一直保持此距离,与某条边

      Dock:停靠   在那一边   (Fill是填充窗体的空余部分)

    2.2.3:创建MDI应用程序

    概念:同时打开多个窗体,但是不会打开多个程序    有一个父窗体,几个子窗体

      步骤:

      在父窗体的IsMdiContaner设置为true,    表示他是一个父窗体了

      在(按钮)跳转的时候

    FrmEdit   frm = new  FrmEdit();

    frm.MdiParent=this;             //他的父窗体就是这个窗体

    frm.show(); 

    2.3:组合框comboBox控件

    Count

    获得集合中的数目

    DropDownStyle

    设置组合框的样式   一般:GropDownlist(只能下拉)

    IsreadOnly

    H获取指定能够修改集合的值

    Item

    集合中指定的索引项

    Add()

    向组合框添加项

    Clear()

    清除所有项

    Remove()

     从组合框中移除指定项

    例:CboGrade.items.Add(“一年级”);  //添加

    CboGrade.selectedIndex=0;    //默认选择第一项(坐标为0)

    第三章:使用listview控件展示数据

    3.1:图像列表控件

    3.1.1:图像列表控件Imagelist

    使用场景:为多个控件或则窗体提供的一部分图片

      

    属性

    说明

    Images

    储存的所有图片的复数

    ImageSize

    图片的大小

    transparentColor

    被视为透视的颜色

    ColorDepth

    获取图片列表的颜色深度

    3.2:列表视图控件(listView控件)

    说明:用于创建项windows资源管理器的用户界面,有大图标(LargeIcon)小图标:(smallIcon)

    列表(List)详细信息(Detail)平铺(Tile)

    Columns

    详细信息中显示的   列头(上面)

    FullRowselect

    当选择一项时,他的子项全部一起选中(一行)

    Items

    Listview的项的集合

    MuiliSelect

    是否允许选泽多项

    Selected Intems

    选中项的集合

    View

    指定listview的显示模式

    LargeimageList

    绑定设置显示大图标时的图片

    SmallImageList

    绑定设置显示小图标时的图片

    事件

    说明

    MouseDoubleClick

    双击事件

    方法

    Clear()

    清除listview项

    设置大小图表模式的代码:大:this.lvcomputer.view=view.largeIcon

    小:this.lvcomputer.view=view.smallIcon

    3.3:contextMenuStrip控件

    说名:快捷菜单:又叫上下文菜单

    属性

    说明

    DisPlayStyle

    指定是否显示图片和文本

    Image

    显示在菜单项的图片

    Text

    显示 在菜单项的文本

    Click

    单击事件

    向listView中添加数据

    ListviewItms   Items=new listviewitems(new stirng[] { “主项(第一个项)”, “子项“, “子项”, },图片的坐标(2)   );.   //添加图片的坐标

    第四章:实现windows程序的数据更新

    4.1:枚举

    4.1.1:使用枚举的好处:可以避免不合理的赋值

    定义枚举类型:访问修饰符  enum  枚举名{ 值1,值2 }

    1:枚举的类

      例:public  enum  Genders

    {

             男,女       //定义枚举类

    }

    2:另一个类

    Public  class  Student

    {

             public   Genders   studentGender;   //定义枚举属性

             Pubicl  void  Show( “我的性别是:“+ studentGender );   //显示方法

    }

    3:有main方法的类

    Student   student=new Student();    //创建对象

    Student.studentGender=Genders.男;

    Stuent.Show();   //调用显示方法

    4.3:使用windows高级控件

    4.3.1:图片框控件(PictureBox)

      用于显示一张图片的控件

    属性

    说明

    Image

    图片框显示的图片

    SizeMode

    指定如何处理图片的位置和大小

    4.3.1:计时器(Timer)控件

    可以控制每隔一定的事件触发一次事情   事件(Tick事件)

    属性

    说明

    InterVal

    事情触发的频率,一般以毫秒为单位

    Endabled

    是否启用事件

    事件

    Tick

    指每隔一段时间发生的事情

    Start()

    启用计时器

    Stop()

    停止计时器

    Int index=0;

    例子:Tmrabout_Tick

    {       

             If(index<this.ilimages.images.count-1)

    {

             Index++;

    }else

    {

             Index=0;

    }

             This.pbAbout(此图片框控件).Image=this.ilimages.images[index];

    }

    模式窗体:FrmAbout,frmAbout=new FmAbout();

                       frmABout.ShowLog();

    第五章:实现windows的数据绑定

    5.1:DataSet对象

    5.1.1:DataSet(数据集)对象

    说明:相当于一个零时仓库,吧程序要用的数据零时存放在数据集里面,。不需要与数据库连接,可以直接在数据集里面读取数据,也可以先对数据集的数据进行修改,然后提交到数据库里面           (数据集独立于任何数据库,不会直接和数据库打交道)

    5.1.2:创建DataSet数据集

    位置:位于System.Data包下面

    语法:DataSet   dataset=new   DataSet();         //创建对象

    5.2:DataAdapter(适配器):对象

    (相当于货车):

    DataAdapter:属性和方法

    SelectCommand

    从数据库检索Command对象

    方法

    说明

    FILL()       填充数据集

    向DataSet中的表填充数据

    UPDate()    修改后提交到数据集

    向DataSet中的数据提交数据库

    语法:

    DataSet   dataset=new   DataSet();

    sqlDataApater  对象  =new SqlDataApater  ( sql语句,数据库连接的connection对象   );

    调用dataAdapter的对象Fill方法填充数据到数据集。

    语法:dataApter.Fill( 数据集对象(dataSet),“数据表的名称(table)” );

    整体步骤:

    DataSet   dataset=new   DataSet();

    String  str=“select   *  from   Student”;

    SqlConnection   connection=new   sqlCOnnection( 连接的字符串 );

    sqlDataApater  对象  =new SqlDataApater  ( sql语句,数据库连接的connection对象   );

    dataApter.Fill( 数据集对象(dataSet),“数据表的名称(table)” );

    绑定(网格视图):this.dataGridView.DataSoure  = ds.tables[“table”];   //绑定是的是网格视图

    绑定(下拉框):this.cboGrade.DataSoure=ds.table[“table”];    //下拉框的数据源

    This.CboGrade.ValueMember=”GradeId”;     //绑定隐藏的值(可能会做后续处理)

    This.cboGrade.DispiayMember=”GradeName”;      / /绑定显示出来的值(用户选择)

    5.3:数据绑定

    5.3.1:comboBox数据绑定

    属性

    说明

    DataSource

    数据源

    DisplayMember (选中显示值,Cbo.Text==?)

    获取显示在用户界面的值

    ValueMember  (选中隐藏值,(cbo.selectedValue==?))

    隐藏的值(实际值),查找时可以做为条件,应为是主键

      绑定(下拉框(comboBox)):this.cboGrade.DataSoure=ds.table[“table”];    //下拉框的数据源

      This.CboGrade.ValueMember=”GradeId”;     //绑定隐藏的值(可能会做后续处理)

      This.cboGrade.DispiayMember=”GradeName”;      / /绑定显示出来的值(用户选择)

    插入一行新的:语法:

      :DataRow  row=ds.Tables[“Grade”].Newrow();    //创建一行新的

      row[“GradeId”]=-1;                           //第一列的值是编号: 为-1

      row[“GradeName”]=”全部”;                    //第二列的值是年级名称:为全部

      ds. Tables [“Grade”].Rows.InsertAt(row,0);         //把这一行插入到数据集的Grade表的行中     第一行(坐标0)

    5.4:DataGridView控件

    概念:数据网格视图控件:可以直接删除,修改数据,如果要显示那个表的数据,直接设置DataSource的属性:表示数据源

    属性

    说明

    AutoGeneerrateColumns

    设置DataGirdView是否自动创建列

    Columns

    列的集合(列头集合),网格视图的头部

    DataSource

    DataGirdView的数据源

    ReadOnly

    是否只读(可以编辑)

    DataGirdView各列的属性

    ColumnType

    列的类型

    DataPropertyName

    绑定数据列的名称   (必须与数据库的列名一样)

    HeaderText

    列的标题文本(列头)

    Visible

    指定列是否可见

    FroZen

    指定水平滚动,列是否可以移动

    ReadOnly

    指定单元格是否可读

    Selected

    DataGirdView必用属性:

    AllowUsertoAddRows

    (DataGirdView)可以取消掉默认展示出来的多余一行

    AutoSizeColumnSMode       值为:Fill(填满)

    选择是否自动调整列的宽度

    ColHeaderVisvile

    是否显示列头

    Cloumns

    列的集合

    ContextMEnuStirp

    绑定快捷菜单

    MultiSelect           一般:false

    是否可以多行选中

    ReadyOnly

    只读

    RowsHeaderVisible     一般:false

    行头是否可见

    SelectionMode       一般:FullRowSelect:整行选中

    如何选择单元格

    Visible

    指定改控件是否可见

    AutoGenerateColumns      

    是否自动创建列    默认:true

     dgvStudentInfo.SelectedRows.count;

      当对网格视图进行操作的时候,需要先判断一下选中的行的个数是否大于0,才进行操作

    对数据库进行修改操作()

    SqlCommandBuilder:只能操作一个表的内容

    接着上面的操作,修改 ,    先直接双击修改表中的内容,然后保存(保存按钮事件中的代码如下:)

      SqlCommandBuilder  builder=new   SqlCommandBUilder(adapter);

      Adapter.Update(ds.”Student”);

      数据网格视图(DataGirdView):的值获取:一般是Value:应为只有网格才有单元格所以:当只能选择一行的时候:         dgvStudent.selectedCells[0] .Value;   获取第一个选择的单元格的内容;

    DgvStudent.selectedRows[0].Cells[0].Value;

      列表视图(listView):获取值一般:Text结尾:

    listView.SelectedItems[0].Text;     //这个是获取主项的值(第一个项的值)

    listView.SelectedItems[0].SubItems[0].Text;  // 获取第一个子项的值(也就是第二个,应为主项在第一个)

    listView.SelectedItems[0].SubItems[1].Text;   // 获取第二个子项的值(也就是第三个,应为主项在第一个)

    第六章:数据的筛选和排序

    6.1:TreeView控件

    6.1.1:认识Treeview控件

    概念:树形控件(TreeView)用于以节点形式显示文本和数据,这些节点按层次结构的顺序排列。

    Tree的属性和事件

    属性

    说明

    Nodes

    TreeView中的所有根节点

    ImagesList

    存放TreeView中节点的图像

    ImageIndex

    节点默认的图片索引

    SelectedImagesIndex

    节点选中的图像的索引

    SelectedNode

    当前选中的父节点

    事件

    说明

    AfterSelect

    选中节点的事件

    TreeNode(节点)的属性和事件

    Text

    节点上的文字

    ImageIndex

    节点默认的图像索引,不设置会与Tree一样

    SeletedImageIndex

    节点选中的图片索引

    Level

    节点的深度(从0开始)

    Nodes

    当前节点包含的子节点集合

    ParentNode

    当前节点的父节点

    Tag

    当前节点可以设置的隐藏值(可以用来做标记)当做条件判断

    SelectNode.parent.Text;

    当前的父节点的文本

    selecNode.Tag

    得到选中节点设置的隐藏值

    Select.Text

    选中的节点的文本

    Splitcontainer

    拆分器(把一个窗体拆开)

    6.2:Dataview

    6.2.1:认识DataView

    DataView:为我们提供了动态视图,并对动态生成的视图进行排序,筛选,它的主要任务就是运行Windows控件的进行数据绑定。

    DataView,DataSet,DataTable:关系

    l  一个DataSet中可以有多个DataTable,一个DataTable可以生成多个DataView视图

    l  创建DataView对象语法:

    DataView 数据视图名=new DataView(DataTable对象)

    DataView  dataview=new DataView(dataset.Tables[“Student”])

    DataView的常用属性

    Table

    用于获取设置源的DataTable

    Sort

    把DataView生成的数据排序(dv.sort=””;)(相当于Oder  by)

    RowFilter

    获取或设置筛选条件(相当于Where)

    只不过要先创建dv.RowFilter=stirng.format(“  ”,num);

    Count

    在应用RowFilter后,获取DataView的行数

    最后别忘记了绑定数据源:dgvStudentInfo.DataSource=dv;

    (就是这个数据网格视图的数据源就是用数据表创建的这个数据视图)

    6.3:在DataGridView中实现删除操作

    步骤:

    1:先判断一下选中的行数是否大于0:DgvStudentInfo.SelectedRows.COUNT>0;

    2:先获取选中的行的主键列的值(唯一的):SelectedRows[0].Cells[“StudentNo”].values;

    3:编写Sql语句实现删除操作  注意:(如果有多表关联,先删子表,再删主表,而且两个sql语句可以写在一起,先删除的在前面,中间用分好隔开 )

    DataGirdView必用属性:

    AllowUsertoAddRows

    (DataGirdView)可以取消掉默认展示出来的多余一行

    AutoSizeColumnSMode       值为:Fill(填满)

    选择是否自动调整列的宽度

    ColHeaderVisvile

    是否显示列头

    Cloumns

    列的集合

    ContextMEnuStirp

    绑定快捷菜单

    MultiSelect           一般:false

    是否可以多行选中

    ReadyOnly

    只读

    RowsHeaderVisible     一般:false

    行头是否可见

    SelectionMode       一般:FullRowSelect:整行选中

    如何选择单元格

    Visible

    指定改控件是否可见

    AutoGenerateColumns      

    是否自动创建列    默认:true

    //    考点

    String connStr = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=sa";

            public void BindTeacherInfo()

            {

                this.dgvTeacherInfo.AutoGenerateColumns = false;    //不自动添加列

                this.dgvTeacherInfo.Columns["colGradeId"].Visible = false;  //隐藏列

                //0.准备sql语句

                StringBuilder sb = new StringBuilder();

                sb.Append(" select id,name,age,teachYear,g.gradeId,gradeName from Teacher as T ");

                sb.Append(" inner join Grade as G ");

                sb.Append(" on G.GradeId=T.gradeId");

                //1.获得连接对象

                SqlConnection conn = new SqlConnection(connStr);

               

                //2.创建数据适配器

                SqlDataAdapter adapter = new SqlDataAdapter(sb.ToString(),conn);

                //adapter.SelectCommand = new SqlCommand(sql,conn);

               

                //3.创建数据集

                DataSet ds = new DataSet();

     

                //4.填充数据

                if(ds.Tables["Teacher"]!=null){

                    ds.Tables["Teacher"].Clear();

                }

                adapter.Fill(ds,"Teacher");

     

                //5.绑定数据源

                this.dgvTeacherInfo.DataSource = ds.Tables["Teacher"].DefaultView;

     

            }

  • 相关阅读:
    python 如何把在字符串里面的名字变成变量,进行复制
    2017-05-30 英语
    RYU 中如钩构建TCP数据包,设置ACK等标志
    Arch linux LXR 安装过程
    ubuntu如何配置lxr
    2017-05-27 英语
    Emacs学习笔记:移动
    9.特殊矩阵的压缩存储
    13.链路层设备
    9.CSMA_CD协议
  • 原文地址:https://www.cnblogs.com/bdqnwangchao/p/7598441.html
Copyright © 2020-2023  润新知