C#可视化程序设计笔记

7 篇文章 0 订阅

一、初识类和对象

1.类与对象

数据抽象是找出需要操作的数据,而行为抽象则指如何对这些数据进行操作

对象是类的一个实例

2.C#类定义

[访问修饰符] class 类名{

        类的字段声明;    public string name;

        类的属性声明;

        类的方法声明;    [访问修饰符] 返回值类型 方法名称(参数列表){

                                       方法体; 

                                   }

}

3.实例化对象

类名 对象名=new 类名()

4.访问类的字段

对象名.字段名

5.调用类的方法

对象名.方法名(参数)

6.命名空间

6.1自定义命名空间

namespace name{

        type-declarations(类型定义语句)

}

可嵌套使用 

6.2常用的系统命名空间

System 根命名空间,提供最基本的操作

System.Date 处理数据存取和管理

System.IO 管理对文件、流的同步和异步访问

System.Windows 可视化编程中基于窗体的处理

System.Collections 包含对集合进行处理的接口和类

6.3命名空间的使用

两个放置于不同命名空间的类,如需相互操作,则

a:导入命名空间来访问

        using Demo1;

b:完全限定名访问 在指定类时带上完整的命名空间

Demo1.item di=new Demo1.item();

二、、ADO.NET基础

1.ADO.NET

是在.NET Framework中负责数据访问的类库集,具有跨平台性和良好的交互性

1.1ADO.NET体系结构

用于访问和操作数据库的两个主要组件是.NET Framework数据提供程序和数据集DataSet

                                   .NET Framework数据提供程序
.NET Framework数据提供程序说明
SQL Server .NET Framework数据提供程序提供对Microsoft SQL Server中数据的访问,使用System.Date.SqlClient命名空间
OLE DB .NET Framework数据提供程序提供对使用OLE DB公开的数据源(如Access Excel等)中数据的访问,使用System.Date.oleDb命名空间
ODBC .NET Framework数据提供程序提供对使用ODBC公开的数据源中数据的访问,使用System.Data.Odbc命名空间
                          C.NET Framework数据提供程序的核心对象
对象说明
Connection建立与特定数据源的连接
Command对数据源执行命令
DataReader从数据源中读取只进只读的数据流
DataAdapter使用数据源填空DataSet并支持更新

 注:

SQL Server数据库{命名空间System.Date.SqlClient

                              核心对象{SqlConnection

                                                SqlCommand

                                                SqlDataReader

                                                SqlDataAdapter

                               }

}

Access数据库{命名空间System.Date.Oledb

                              核心对象{OleDbConnection

                                                OleDbCommand

                                                OleDbDataReader

                                                OleDbDataAdapter

                               }

}

1.2ADO.NET操作数据库的方式

非断开式访问:在整个操作过程中需要保持数据库连接

断开式访问:只需要在执行数据库命令时保持数据库连接

1.2.1使用Connection对象、Command对象、DataReader对象实现非断开式访问

1.2.1.1对数据库进行更改(Insert、Update、Delete)或执行聚合函数

a:创建数据库连接对象Connection,并打开连接

b:创建命令对象Command

c:执行相应的SQL命令(Insert、Update、Delete或聚合函数)

d:关闭数据库连接

1.2.1.2查询数据库(select)

a:创建数据库连接对象Connection,并打开连接

b:创建命令对象Command

c:执行select查询命令,获取DataReader对象

d:使用while循环读取DataReader中的数据

e:关闭DataReader对象

f:关闭数据库连接

1.2.2使用Connection对象、DataReader对象、DataSet对象实现断开式访问

a:创建数据库连接对象Connection

b:创建数据库适配对象DataAdapter,指定select命令和Connection对象

c:创建数据集DataSet对象,用于在内存中缓存数据

d:使用DataAdapter对象将查询到的数据填充至DataSet数据集中

e:更新DataSet中的数据

f:使用DataAdapter对象将DataSet对象中的数据回传至数据库中

2.Connection对象

用于连接数据库,使用微软的SqlServer数据库,需导入System.Date.SqlClient命名空间,创建SqlConnection对象

                                       Connection对象的常用属性
属性说明
ConnectionString用于连接数据库的连接字符串
State用于指示连接对象的状态,枚举类型
                                  ConnectionState枚举值及说明
枚举值说明
Broken与数据库的连接中断,可以先关闭连接后再打开
Closed数据库连接处于关闭状态
Connecting连接对象正在与数据库进行连接
Executing连接对象正在执行命令
Fetching连接对象正在检索数据
Open数据库连接处于打开状态
                                      Connection对象的常用方法
方法说明
Open()打开数据库连接
Close()关闭

使用Connection对象连接数据库 

a:设置连接字符串

SQL Server身份验证连接字符串

server=服务器名;database=数据库名;uid=用户名;pwd=密码;

Windows身份验证连接字符串

server=服务器名;database=数据库名;Integrated Security=true;

b:导入命名空间

using System.Data;

using System.Data.SqlClient;

c:创建Connection对象

SqlConnection 连接对象名=new SqlConnection("连接字符串");

d:打开连接

连接对象名.Open();

e:关闭连接

连接对象名.Close();

3.Command对象

                                         Command对象常用属性
属性说明
CommandText获取或设置对数据库执行的T-SQL命令
Connection获取或设置连接数据库的Connection对象
                                       Command对象的常用方法
方法说明
ExecuteNonQuery执行T-SQL语句,并返回受影响的行数(增删改)
ExecuteReader执行查询命令,并返回DataReader对象(查询)
ExecuteScalar执行查询命令,并返回结果集中首行首列的值(聚合函数)

 使用Command对象执行命令

a:创建Connection对象

b:打开数据库连接

c:定义需要执行的增删改SQL语句,存入字符串变量

d:创建Command对象

SqlConnection 命令对象名=new SqlConnection("SQL语句",Connection对象);

e:执行SQL语句,返回受影响行数

int 受影响的行数=命令对象名.ExecuteNonQuery();

f:关闭连接

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace Demo2
{
    //2.3Command对象
    internal class Program
    {
        static void Main(string[] args)
        {
            //1.建立连接
            string connStr = "server=.;database=3CDB;Integrated Security=true";
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            string sqlStr = null;
            if (conn.State == ConnectionState.Open)
            {
                //2.显示操作界面
                showMessage();
                //3.接受用户的操作输入
                Console.WriteLine("请输入你选择的功能序号");
                string inputStr=Console.ReadLine();
                //4.根据用户不同的输入选择不同sql
                switch (inputStr)
                {
                    case "1":
                        Console.WriteLine("请输入新增管理员账号");
                        string uid=Console.ReadLine();
                        Console.WriteLine("请输入新增管理员密码");
                        string pwd = Console.ReadLine();
                        Console.WriteLine("请输入新增管理员用户名");
                        string uName = Console.ReadLine();
                        sqlStr =string.Format( "insert into Admins values('{0}','{1}','{2}')\r\n",
                            uid,pwd,uName);
                        break;
                    case "2":
                        Console.WriteLine("请输入要修改的管理员账号");
                        uid = Console.ReadLine();
                        Console.WriteLine("请输入管理员旧密码");
                        pwd = Console.ReadLine();
                        Console.WriteLine("请输入管理员新密码");
                        string newPwd = Console.ReadLine();
                        sqlStr = string.Format("update Admins set LoginPwd='{0}' where LoginId='{1}' and LoginPwd='{2}'\r\n",
                            newPwd,uid,pwd);
                        break;
                    case "3":
                        Console.WriteLine("请输入要删除的管理员账号");
                        uid = Console.ReadLine();
                        Console.WriteLine("请输入要删除管理员密码");
                        pwd = Console.ReadLine();
                        sqlStr =string.Format ("delete from Admins where LoginId='{0}' and LoginPwd='{1}' ",
                            uid,pwd);
                        break;
                    default:
                        Console.WriteLine("输入有误");
                        break;
                }
            }

            //5.执行sql
            SqlCommand cmd = new SqlCommand(sqlStr,conn);
            int rs=cmd.ExecuteNonQuery();
            if (rs > 0) {
                Console.WriteLine("执行成功");
            }
            //6.关闭连接
            conn.Close();
        }

        private static void showMessage()
        {
            Console.WriteLine("+------------------------+");
            Console.WriteLine("+1.新增管理员            +");
            Console.WriteLine("+2.修改管理员密码        +");
            Console.WriteLine("+3.删除管理员            +");
            Console.WriteLine("+------------------------+");
        }
    }
}

4.DataReader对象

                                      DataReader对象的常用属性
属性说明
FieldCount获取每行数据的列数
HasRows指示查询结果中是否还存在未读取的数据,Bool类型
                                   DataReader对象的常用方法
方法说明
Read使DataReader前进到下一条记录,如果下一条有记录,则返回true,否则false
Close关闭DataReader对象
GetName获取指定列的名称

4.1 使用DataReader对象读取查询结果

a:创建数据库连接对象并打开

b:定义用于查询的SQL语句

c:创建命令对象Command

d:执行SQL命令,返回DataReader对象

SqlDataReader 数据读取对象=命令对象.ExecuteReader();

e:使用循环,逐行读取数据

while(数据读取对象.Read()){

        Object 某列的值=数据读取对象["索引或列名"];

}

f:关闭DataReader对象

数据读取对象.Close();

g:关闭连接对象 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace Demo3
{
    //2.4 DataReader对象  查询
    internal class Program
    {
        static void Main(string[] args)
        {
            //1:连接数据库
            string connStr = "server=.;database=3CDB;uid=sa;pwd=123456";
            //2:打开数据库
            SqlConnection conn =new SqlConnection(connStr);
            //3:判断是否打开
            conn.Open();
            if (conn.State == ConnectionState.Open) {
                //4:sql
                string sqlStr = "select * from Admins";
                //5:创建命令对象
                SqlCommand cmd = new SqlCommand(sqlStr, conn);
                //6:执行
                SqlDataReader sqlDataReader= cmd.ExecuteReader();
                Console.WriteLine("编号\t账号\t密码\t姓名");
                Console.WriteLine("-------------------------------");
                //7:循环显示
                while (sqlDataReader.Read())
                {
                    string ID = sqlDataReader["ID"].ToString();
                    string loginId = sqlDataReader["LoginId"].ToString();
                    string pwd= sqlDataReader["LoginPwd"].ToString();
                    string uName = sqlDataReader["Name"].ToString();
                    Console.WriteLine("{0}\t{1}\t{2}\t{3}",ID,loginId,pwd,uName);
                }
                //8:关闭datareader
                sqlDataReader.Close();
            }
            //9:关闭连接 
            conn.Close();
        }
    }
}

4.2 使用Command对象执行聚合函数

a:创建数据库连接对象并打开

b:定义用于查询的SQL语句

c:创建命令对象Command

d:执行SQL命令,返回结果集的首行首列

Object 结果集中首行首列的值=命令对象.ExecuteScalar();

 e:关闭数据库

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace Demo4
{
    //2.4   查询--聚合函数
    //商品总个数、总金额、平均价格
    internal class Program
    {
        static void Main(string[] args)
        {
            //1.连接并打开数据库
            string connStr = "server=.;database=3CDB;uid=sa;pwd=123456";
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            if(conn.State== ConnectionState.Open)
            {
                //2.sql  
                string sumSql = "select SUM(Price*Stock) from Products ";
                string countSql = "select COUNT(*) from Products ";
                string avgSql = "select AVG(Price) from Products ";
                //3.创建命令对象
                SqlCommand sumcmd=new SqlCommand(sumSql, conn);
                SqlCommand countcmd = new SqlCommand(countSql, conn);
                SqlCommand avgcmd = new SqlCommand(avgSql, conn);

                string sumPrice=sumcmd.ExecuteScalar().ToString();
                string countProducts=countcmd.ExecuteScalar().ToString();
                string avgPrice=avgcmd.ExecuteScalar().ToString();
                //4.显示界面
                Console.WriteLine("XX科技公司产品统计如下:");
                Console.WriteLine("===================================");
                //5.渲染界面
                Console.WriteLine("产品总金额:"+sumPrice);
                Console.WriteLine("产品总数量:" + countProducts);
                Console.WriteLine("产品平均价格:" + avgPrice);
            }

            //6.关闭连接
            conn.Close();
        }
    }
}

三、异常处理与DBHelper类

1.字符串处理方法

                                            常用字符串处理方法
方法说明
int IndexOf(string value)获取指定的value字符串在当前字符串中第一个匹配项的索引,如果找到,返回它的索引,未找到返回-1
int LastIndexOf(string value)获取指定的value字符串在当前字符串中最后一个匹配项的索引
string Join(string separator,string[] value)在字符串数组value中的每个字符串用指定的分隔符separator连接,返回连接后的字符串
string[] Split(char separator)用指定的分隔符separator分割字符串,返回分割后的字符串组成的数组
string SubString(int startIndex,int length)从指定的位置startIndex开始检索长度为length的子字符串
string ToLower()获得字符串的小写形式
string ToUpper()获得字符串的大写形式
string Trim()去掉字符串两端的空格

string的Format()方法 

string strResult=string.Format("格式字符串",参数列表);

string num=string.Format("{0}加上{1}等于{2}",3,5,3+5);

2.类的静态成员

2.1静态字段

指被关键字static修饰的字段    访问——类名.字段名

没有被static修饰的字段是实例字段  访问——对象名.字段名

class 类名{

        [访问修饰符] static 类型 字段名;

}

2.2静态方法

class 类名{

        [访问修饰符] static 返回值类型 方法名(类型 参数1,类型 参数2) {

                方法体

        }

}

访问——类名.方法名(参数) 

3.异常处理

try{

        //可能出现异常的代码

}catch(Exception e){

        //捕获到异常,进行异常处理的代码

}

try{

        //可能出现异常的代码

}catch(Exception e){

        //捕获到异常,进行异常处理的代码

}finally{

        //释放资源代码

}

try{

        //可能出现异常的代码

}

finally{

        //释放资源代码

}

4.DBHelper类

                                          DBHelper类中的字段
字段名类型是否公开说明
ConnStringstring是(public)数据库连接字符串
ConnSqlConnection否(private)数据库连接对象
                                            DBHelper类中的方法
方法名参数返回值是否公开说明
InitConnection无(viod)private初始化连接,创建并打开连接
GetDataReaderSQL字符串SqlDataReaderpublic查询,获得DataReader对象
ExecuteNonQuerySQL执行是否成功public执行增删改操作
ExecuteScalarSQL结果(object)public执行聚合函数

四、Windows窗体应用

1.创建Windows应用程序

Windows窗体应用(.NET Framework)

2.窗体常用属性

属性名说明
Name窗体对象的名字
BackColor窗体的背景色
Icon窗体的图标
BackgroundImage窗体的背景图像BackgroundImageLayou:Zoom;铺满
FormBorderStyle

窗体显示的边框样式

默认值Sizable(可调整大小的边框)

Fixed3D(固定的三维边框)

FixedDialog(固定的对话框样式的粗边框)

FixedSingle(固定的单行边框)

FixedToolWindow(不可调整大小的工具窗体边框)

None(无边框)

SizableToolWindow(可调整大小的工具窗体边框)

MaximizeBox确定窗体标题栏的右上角释放有最大化框,默认值true
ShowInTaskbar确定窗体是否出现在windows任务栏中,默认值true
StartPosition

窗体第一次出现的位置

默认值WindowsDefaultLocation(定位在windows默认位置,其尺寸由Size属性决定)

Manual(由Location属性确定)

CenterScreen(屏幕内居中)

CenterParent(父窗体内居中)

WindowsDefaultBounds(windows默认位置,边界也由windows默认决定)

Text窗体标题栏中显示的文本
TopMost指示窗体是否始终显示在此属性未设置为True的所有窗体之上,默认为False
WindowState

确定窗体的初始可视状态

默认值Normal(窗体加载后的初始尺寸由Size属性决定)

Minimized(窗体加载后直接最小化到任务栏)

Maximized(窗体加载后直接最大化)

3.窗体常用事件

事件名说明
Load窗体加载事件,加载时发生
Click窗体单击事件
DoubleClick窗体双击事件
MouseMove鼠标移动
KeyDown键盘按下事件,在首次按下某个键时发生
KeyUp键盘释放

4.显示消息框

MessageBox.Show(要显示的字符串);

MessageBox.Show(要显示的字符串,消息框的标题);

MessageBox.Show(要显示的字符串,消息框的标题,消息框按钮);

MessageBox.Show(要显示的字符串,消息框的标题,消息框按钮,消息框图标);

MessageBox.Show("确定要退出吗","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);

 是一种DialogResult(对话框返回值)类型,可以通过点运算符来获取其中的一种返回值,如DialogResult.OK是指用户单击了确定按钮

5.设置启动窗体

Application.Run(new Form2());

6.窗体间的相互调用

6.1模式窗口

Form1 form1=new Form1();

form1.ShowDialog();

6.2非模式窗口

显示时仍能操作其他窗体

Form1 form1=new Form1();

form1.Show();

6.3 隐藏关闭退出

隐藏:Hide()

关闭:Close()

退出:Application.Exit()

五、Windows基础控件

1.控件概述

1.1分类:文本、选择、分组、菜单、工具栏、状态栏

1.2对齐控件:菜单栏的格式命令

1.3Anchor(锚定)属性:设置控件相对于窗体的某个边缘距离保持不变

1.4Dock(停靠)属性:让控件始终保持在窗体的边缘或填充窗体

1.5锁定控件:Locked属性设置为True  右键——菜单栏“格式”命令

2.文本类控件

2.1标签控件Label

显示用户不能编辑的文本

命名:lblXXX

属性说明
Text设置或读取标签控件的文本
Visible显示或隐藏标签控件

2.2文本框控件TextBox

用户输入的文本

命名:txtXXX

只读:ReadOnly属性为True

密码文本框:UseSystemPasswordChar属性为True   实心圆代替

多行文本框:Multiline属性为True

2.3按钮控件Button

命名:btnXXX

事件:Click

属性:BackgroundImage设置图像

        AcceptButton “接受”按钮 回车键

        CancelButton “取消”按钮 ESC

3.菜单、工具栏和状态栏

3.1菜单

MenuStrip(下拉式菜单)  快捷键输入方式——“(&快捷键)”

ContextMenuStrip(右键快捷菜单) ContextMenuStrip属性为该菜单

3.2工具栏 ToolStrip

右键“ToolStrip”控件——插入标准项

自定义命令按钮——右键{——设置图像

                                         ——DisplayStyle——ImageAndText显示文本和图像

3.3状态栏 StatusStrip

Text设置文本

4.选择类控件

4.1下拉组合框控件 ComboBox

命名:cmbXXX

                                         下拉样式DropDownStyle
属性值说明
Simple使ComboBox列表部分只是可见
DropDown(默认)使用户可以编辑控件的文本框部分,单击箭头才显示列表
DropDownList用户不可以编辑控件的文本框部分

双击触发SelectedIndexChange选项值更改事件 

4.2复选框控件 CheckBox

命名:cbXXX chkXXX

属性:Text属性  checked属性——是否选中

选中状态更改事件checkedChanged   双击

4.3单选按钮控件  RadioButton

命名:rbXXX

属性:Text属性  checked属性——是否选中

选中状态更改事件checkedChanged   双击

分组——使用Panel容器

六、Windows控件应用

1.多文档界面应用程序

1.1设置MDI父窗体

IsMdiContainer属性为True

1.2设置并显示子窗体

父窗体的Load事件

 Form1 form1=new Form1();

form1.Show();

form1.MdiParent=this;

1.3特点

1.3.1只能有一个MDI父窗体,可以打开多个MDI子窗体

1.3.2只能在父窗体内部区域活动

1.3.3关闭父窗体,将关闭所有打开的子窗体

1.4常用操作

1.4.1获取当前活动的子窗体——ActiveMdiChild属性  .Text获取标题

1.4.2LayouMdi()方法调整排列方式,将MdiLayout枚举值作为参数

this.LayoutMdi(MdiLayout.ArrangeIcons);排列所有MDI子窗口图标

Cascade层叠排列

TileHorizontal水平平铺

TileVertical垂直平铺

2.图片框PictureBox

命名:picXXX

属性说明
Image设置显示在图片框控件上的图像
ImageLocation设置显示在图片框控件上的图像的路径
SizeMode

控制调整控件或图片的大小及放置位置

Normal置于PictureBox左上角,图像超出被裁剪

StretchImage图像被拉伸或收缩,以适应PictureBox的大小

AutoSize调整PictureBox的大小,等于包含的图片

CenterImage居中

Zoom铺满

picXXX. ImageLocation="图片路径";

picXXX. Image= Image.FromFile("图片路径");

3.计时器

3.1属性

Interval 事件发送的间隔(毫秒)

Enable是否启用(布尔)

3.2方法

Start()启动计时器

Stop()停止计时器

3.3事件

Tick定时间隔到自动引发的事件

4.图片集ImageList

命名:ilXXX

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

访问图像对象:ilXXX.Images[index];

添加图片:ilXXX.Images.Add(图像对象);

图片数量:ilXXX.Images.Count

七、Windows数据显示控件

1.数据集DataSet

类比于数据库

是ADO.NET的核心对象,支持ADO.NET断开式、分布式数据方案的核心对象,是创建在内存中的集合对象,类似于在内存中创建的一个小型数据库

1.1缺点:可能得到过时数据

1.2创建DataSet对象

DataSet类似于System.Data命名空间中,使用时必须引入该命名空间

DataSet 数据库对象=new DataSet("数据集名称");

DataSet myDataSet=new DataSet();

DataSet myDataSet=new DataSet("myDataSet");

属性:Tables 获取包含在DataSet中的表的集合

方法:Clear 清除DataSet中的数据

2.数据适配器DataAdapter

用于填充数据集DataSet和更新数据库,连接DataSet与数据库的桥梁

2.1属性

SelectCommand 用于从数据源中查询记录的Command对象

2.2方法

Fill()向DataSet的数据表中填充数据
Update()将DataSet中的数据返回到数据库中更新

2.3DataAdapter对象的使用

a:创建数据库连接对象

b:定义查询数据库的SQL命令

c:创建DataSet对象

d:创建DataAdapter对象

SqlDataAdapter dataAdapter对象=new SqlDataAdapter(SQL命令,数据库连接对象);

e:调用DataAdapter对象的Fill()方法填充DataSet对象

dataAdapter对象.Fill(数据集对象,需要填充的数据表的名称);

2.4访问DataSet中的数据

2.4.1访问DataSet对象中的DataTable对象

DataSet对象.Tables[表索引或表名];

2.4.2访问DataTable对象中的DataRow对象(某一行数据)

DataSet对象.Tables[表索引或表名].Rows[行索引];

2.4.3访问DataRow对象中某列的值

DataSet对象.Tables[表索引或表名].Rows[行索引][列索引或列名];

注意:

索引均从0开始

获取DataRow中某列的值时,其值是Object对象,需显示类型转换 

DataTable dt=ds.Table[0];
textBox.Text=Convert.ToString(dt.Rows[index]["Name"]);
textBox.Text=string.Format("{0:C}元",dt.Rows[index]["Price"]);

3.DataGridView控件

DataGridView控件可以通过DataSource属性与DataSet中的数据表进行绑定,在窗体中以表格形式显示数据集中的数据,允许在表格中对数据进行编辑

3.1DataGridView控件的常用属性

属性说明
Name获取或设置DataGridView控件的名称
DataSource获取或设置DataGridView控件所显示数据的数据源
Rows获取DataGridView控件中所有行的集合
Colums获取DataGridView控件中所有列的集合
SelectionMode指示选中单元格的模式,选中一个单元格还是整行
SelectedCells获取用户选中的单元格的集合
SelectedRows获取用户选中的行的集合
SelectedColumns获取用户选中的列的集合
MultiSelect指示是否允许用户选中多个单元格、行或列
AllowUserToAddRows指示是否允许用户在DataGridView中添加行
AllowUserToDeleteRows指示是否允许用户在DataGridView中删除行
ReadOnly指示是否允许用户编辑DataGridView的单元格
AllowGenerateColumns指示在设置DataSource时是否自动创建列
ColumnHeadersVisible指示是否显示列标题行
RowHeadersVisible指示是否显示列标题列
CurrentCell获取或设置当前处于活动状态的单元格
CurrentRow获取包含当前单元格的行
AutoSizeColumnMode可见列自动调整大小的模式,Fill所有列自动填充

3.2DataGridView控件的使用

向窗体内添加DataGridView控件——小三角编辑列(名称、页眉文本、绑定数据源)——设置DataGridView控件的数据源

DataGridView对象.DataSource=DataSet对象.Table["数据表名称或表索引"];

4.DataView对象筛选和排序数据

表示用于排序、筛选、搜索、编辑和导航的DataTable上可绑定数据的自定义视图

                                         DataView控件的常用属性
RowFilter获取或设置用于筛选在DataView中查看哪些行的表达式
Sort获取或设置DataView的一个或多个排序列以及排序顺序

4.1创建DataView对象

DataView dv=DataTable.DefaultView

DataView dv=new DataView(DataTable)

4.2筛选数据

DataView对象.RowFilter="过滤字符串"

逻辑运算符AND、OR、NOT
关系运算符<、>、>=、<=、!=、==
算数+、-、*、\、%
LIKElike通配符(*和%)
聚合SUM、COUNT、MIN、MAX、AVG
dv.RowFilter=string.Format("Name like '%{0}%'",textBox.Text);

4.3排序数据 

DataView对象.Sort="列名[ASC|DESC],列[ASC|DESC]....";

dv.Sort="Phone DESC";
dataGridView1.DataSource=dv;

八、Windows高级控件

1.树型控件TreeView

                                             TreeView的常用属性
属性说明
Name获取或设置控件的名称
NodesTreeView控件根节点集合
SelectedNode获取或设置当前TreeView控件中选定的树节点
ImageList获取或设置当前TreeView控件中所使用的图像集,关联ImageList控件
ImageIndex获取或设置树节点显示的图像,在ImageList图像集中的索引
SelectedImageIndex获取或设置节点被选中时显示的图像,在ImageList图像集中的所有
                                           TreeView的常用事件
事件说明
AfterCollapse在折叠对节点后触发
AfterExpand在展开对节点后触发
AfterSelect在更改选中节点后触发
Click在点击TreeView控件时触发

1.1使用代码添加节点

private void TreeViewForm-Load(Object sender,EventArgs e){
    TreeNode root=new TreeNode("STTF公司产品");//创建根节点
    this.tvSTTF.Nodes.Add(root);//将根节点连接到TreeView控件上
    TreeNode tvNode=new TreeNode("电视");//创建电视节点
    root.Nodes.Add(tvNode);//将其连接到根节点上
    TreeNode tvSubNode=new TreeNode("平板电视");//创建平板电视节点
    tvNode.Nodes.Add(tvSubNode);//将其连接到电视节点上
    this.tvSTTF.ExpandAll();//展开所有节点
}

1.2使用代码删除节点

TreeView控件.Nodes.Remove(要删除的TreeNode节点对象);

this.tvSTTF.Nodes.Remove(tvNode);

2.TreeView控件常用操作

2.1树节点添加图标

向窗体中添加图像集ImageList控件——将TreeView控件与ImageList控件进行关联——设置ImageIndex属性(默认节点图标)、SelectedImageIndex属性(选中节点图标)

2.2获取选中节点

private void treeView1-AfterSelect(Object sender,TreeViewEventArgs e){
    TreeNode selectedNode=this.treeView1.SelectedNode;
    MessageBox.Show(string.Format("你选中了节点:{0}",selectedNode.Text));
}

3.列表视图控件ListView

                                         ListView控件的常用属性
属性说明
Name控件名称
Items包含控件中所有项的集合
Columns控件中显示的所有列标题的集合
View控件的显示视图
LargeImageList当控件以大图标视图显示时使用的ImageList
SmallImageList当控件以小图标视图显示时使用的ImageList
GridLines在包含控件中的行和列之间是否显示网格线
MultiSelect是否可以选择多项
SelectedItems获取在控件中选定的项
FullRowSelect单击某项是否选择其所有子项

3.1方法

Clear() 从控件中移除所有项和列,清空ListView

3.2事件

Click 在单击ListView控件时触发

SelectedIndexChanged 当选定项发生更改时触发

3.3ListView添加项 

private void ProductListForm-Load(object sender,EventArgs e){
    ListViewItem item1=new ListViewItem("MWatch3");//创建ListViewItem对象
    item1.SubItems.Add("$3888.00");
    item1.SubItems.Add("100");
    this.tvSTTF.Item.Add(item1);
}

3.3ListView移除项  

ListView对象.Items.Remove(要移除的项);

4.ListView控件视图切换

                                            View属性的值及说明
属性说明
Details详细视图
LargeIcon(默认值)大图标
SmallIcon小图标
List列表
Tile平铺
ContextMenuStrip右键菜单

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值