数据抽象是找出需要操作的数据,而行为抽象则指如何对这些数据进行操作
对象是类的一个实例
[访问修饰符] class 类名{
类的字段声明; public string name;
类的属性声明;
类的方法声明; [访问修饰符] 返回值类型 方法名称(参数列表){
方法体;
}
}
类名 对象名=new 类名()
对象名.字段名
对象名.方法名(参数)
namespace name{
type-declarations(类型定义语句)
}
可嵌套使用
System 根命名空间,提供最基本的操作
System.Date 处理数据存取和管理
System.IO 管理对文件、流的同步和异步访问
System.Windows 可视化编程中基于窗体的处理
System.Collections 包含对集合进行处理的接口和类
两个放置于不同命名空间的类,如需相互操作,则
a:导入命名空间来访问
using Demo1;
b:完全限定名访问 在指定类时带上完整的命名空间
Demo1.item di=new Demo1.item();
是在.NET Framework中负责数据访问的类库集,具有跨平台性和良好的交互性
用于访问和操作数据库的两个主要组件是.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.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对象中的数据回传至数据库中
用于连接数据库,使用微软的SqlServer数据库,需导入System.Date.SqlClient命名空间,创建SqlConnection对象
Connection对象的常用属性 | |
属性 | 说明 |
ConnectionString | 用于连接数据库的连接字符串 |
State | 用于指示连接对象的状态,枚举类型 |
ConnectionState枚举值及说明 | |
枚举值 | 说明 |
Broken | 与数据库的连接中断,可以先关闭连接后再打开 |
Closed | 数据库连接处于关闭状态 |
Connecting | 连接对象正在与数据库进行连接 |
Executing | 连接对象正在执行命令 |
Fetching | 连接对象正在检索数据 |
Open | 数据库连接处于打开状态 |
Connection对象的常用方法 | |
方法 | 说明 |
Open() | 打开数据库连接 |
Close() | 关闭 |
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();
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("+------------------------+");
}
}
}
DataReader对象的常用属性 | |
属性 | 说明 |
FieldCount | 获取每行数据的列数 |
HasRows | 指示查询结果中是否还存在未读取的数据,Bool类型 |
DataReader对象的常用方法 | |
方法 | 说明 |
Read | 使DataReader前进到下一条记录,如果下一条有记录,则返回true,否则false |
Close | 关闭DataReader对象 |
GetName | 获取指定列的名称 |
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();
}
}
}
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();
}
}
}
常用字符串处理方法 | |
方法 | 说明 |
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 strResult=string.Format("格式字符串",参数列表);
string num=string.Format("{0}加上{1}等于{2}",3,5,3+5);
指被关键字static修饰的字段 访问——类名.字段名
没有被static修饰的字段是实例字段 访问——对象名.字段名
class 类名{
[访问修饰符] static 类型 字段名;
}
class 类名{
[访问修饰符] static 返回值类型 方法名(类型 参数1,类型 参数2) {
方法体
}
}
访问——类名.方法名(参数)
try{
//可能出现异常的代码
}catch(Exception e){
//捕获到异常,进行异常处理的代码
}
或
try{
//可能出现异常的代码
}catch(Exception e){
//捕获到异常,进行异常处理的代码
}finally{
//释放资源代码
}
或
try{
//可能出现异常的代码
}
finally{
//释放资源代码
}
DBHelper类中的字段 | |||
字段名 | 类型 | 是否公开 | 说明 |
ConnString | string | 是(public) | 数据库连接字符串 |
Conn | SqlConnection | 否(private) | 数据库连接对象 |
DBHelper类中的方法 | ||||
方法名 | 参数 | 返回值 | 是否公开 | 说明 |
InitConnection | 无 | 无(viod) | private | 初始化连接,创建并打开连接 |
GetDataReader | SQL字符串 | SqlDataReader | public | 查询,获得DataReader对象 |
ExecuteNonQuery | SQL | 执行是否成功 | public | 执行增删改操作 |
ExecuteScalar | SQL | 结果(object) | public | 执行聚合函数 |
Windows窗体应用(.NET Framework)
属性名 | 说明 |
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(窗体加载后直接最大化) |
事件名 | 说明 |
Load | 窗体加载事件,加载时发生 |
Click | 窗体单击事件 |
DoubleClick | 窗体双击事件 |
MouseMove | 鼠标移动 |
KeyDown | 键盘按下事件,在首次按下某个键时发生 |
KeyUp | 键盘释放 |
MessageBox.Show(要显示的字符串);
MessageBox.Show(要显示的字符串,消息框的标题);
MessageBox.Show(要显示的字符串,消息框的标题,消息框按钮);
MessageBox.Show(要显示的字符串,消息框的标题,消息框按钮,消息框图标);
MessageBox.Show("确定要退出吗","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
是一种DialogResult(对话框返回值)类型,可以通过点运算符来获取其中的一种返回值,如DialogResult.OK是指用户单击了确定按钮
Application.Run(new Form2());
Form1 form1=new Form1();
form1.ShowDialog();
显示时仍能操作其他窗体
Form1 form1=new Form1();
form1.Show();
隐藏:Hide()
关闭:Close()
退出:Application.Exit()
1.1分类:文本、选择、分组、菜单、工具栏、状态栏
1.2对齐控件:菜单栏的格式命令
1.3Anchor(锚定)属性:设置控件相对于窗体的某个边缘距离保持不变
1.4Dock(停靠)属性:让控件始终保持在窗体的边缘或填充窗体
1.5锁定控件:Locked属性设置为True 右键——菜单栏“格式”命令
显示用户不能编辑的文本
命名:lblXXX
属性 | 说明 |
Text | 设置或读取标签控件的文本 |
Visible | 显示或隐藏标签控件 |
用户输入的文本
命名:txtXXX
只读:ReadOnly属性为True
密码文本框:UseSystemPasswordChar属性为True 实心圆代替
多行文本框:Multiline属性为True
命名:btnXXX
事件:Click
属性:BackgroundImage设置图像
AcceptButton “接受”按钮 回车键
CancelButton “取消”按钮 ESC
MenuStrip(下拉式菜单) 快捷键输入方式——“(&快捷键)”
ContextMenuStrip(右键快捷菜单) ContextMenuStrip属性为该菜单
右键“ToolStrip”控件——插入标准项
自定义命令按钮——右键{——设置图像
——DisplayStyle——ImageAndText显示文本和图像
Text设置文本
命名:cmbXXX
下拉样式DropDownStyle | |
属性值 | 说明 |
Simple | 使ComboBox列表部分只是可见 |
DropDown(默认) | 使用户可以编辑控件的文本框部分,单击箭头才显示列表 |
DropDownList | 用户不可以编辑控件的文本框部分 |
双击触发SelectedIndexChange选项值更改事件
命名:cbXXX chkXXX
属性:Text属性 checked属性——是否选中
选中状态更改事件checkedChanged 双击
命名:rbXXX
属性:Text属性 checked属性——是否选中
选中状态更改事件checkedChanged 双击
分组——使用Panel容器
IsMdiContainer属性为True
父窗体的Load事件
Form1 form1=new Form1();
form1.Show();
form1.MdiParent=this;
1.3.1只能有一个MDI父窗体,可以打开多个MDI子窗体
1.3.2只能在父窗体内部区域活动
1.3.3关闭父窗体,将关闭所有打开的子窗体
1.4.1获取当前活动的子窗体——ActiveMdiChild属性 .Text获取标题
1.4.2LayouMdi()方法调整排列方式,将MdiLayout枚举值作为参数
this.LayoutMdi(MdiLayout.ArrangeIcons);排列所有MDI子窗口图标
Cascade层叠排列
TileHorizontal水平平铺
TileVertical垂直平铺
命名:picXXX
属性 | 说明 |
Image | 设置显示在图片框控件上的图像 |
ImageLocation | 设置显示在图片框控件上的图像的路径 |
SizeMode | 控制调整控件或图片的大小及放置位置 Normal置于PictureBox左上角,图像超出被裁剪 StretchImage图像被拉伸或收缩,以适应PictureBox的大小 AutoSize调整PictureBox的大小,等于包含的图片 CenterImage居中 Zoom铺满 |
picXXX. ImageLocation="图片路径";
picXXX. Image= Image.FromFile("图片路径");
Interval 事件发送的间隔(毫秒)
Enable是否启用(布尔)
Start()启动计时器
Stop()停止计时器
Tick定时间隔到自动引发的事件
命名:ilXXX
属性 | 说明 |
Images | 存储在控件中的图像合集 |
ImageSize | 图像集中图像的大小,最大值256*256 |
ColorDepth | 图像集中图像的颜色深度 |
访问图像对象:ilXXX.Images[index];
添加图片:ilXXX.Images.Add(图像对象);
图片数量:ilXXX.Images.Count
类比于数据库
是ADO.NET的核心对象,支持ADO.NET断开式、分布式数据方案的核心对象,是创建在内存中的集合对象,类似于在内存中创建的一个小型数据库
DataSet类似于System.Data命名空间中,使用时必须引入该命名空间
DataSet 数据库对象=new DataSet("数据集名称");
DataSet myDataSet=new DataSet();
或
DataSet myDataSet=new DataSet("myDataSet");
属性:Tables 获取包含在DataSet中的表的集合
方法:Clear 清除DataSet中的数据
用于填充数据集DataSet和更新数据库,连接DataSet与数据库的桥梁
SelectCommand 用于从数据源中查询记录的Command对象
Fill() | 向DataSet的数据表中填充数据 |
Update() | 将DataSet中的数据返回到数据库中更新 |
a:创建数据库连接对象
b:定义查询数据库的SQL命令
c:创建DataSet对象
d:创建DataAdapter对象
SqlDataAdapter dataAdapter对象=new SqlDataAdapter(SQL命令,数据库连接对象);
e:调用DataAdapter对象的Fill()方法填充DataSet对象
dataAdapter对象.Fill(数据集对象,需要填充的数据表的名称);
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"]);
DataGridView控件可以通过DataSource属性与DataSet中的数据表进行绑定,在窗体中以表格形式显示数据集中的数据,允许在表格中对数据进行编辑
属性 | 说明 |
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所有列自动填充 |
向窗体内添加DataGridView控件——小三角编辑列(名称、页眉文本、绑定数据源)——设置DataGridView控件的数据源
DataGridView对象.DataSource=DataSet对象.Table["数据表名称或表索引"];
表示用于排序、筛选、搜索、编辑和导航的DataTable上可绑定数据的自定义视图
DataView控件的常用属性 | |
RowFilter | 获取或设置用于筛选在DataView中查看哪些行的表达式 |
Sort | 获取或设置DataView的一个或多个排序列以及排序顺序 |
DataView dv=DataTable.DefaultView
或
DataView dv=new DataView(DataTable)
DataView对象.RowFilter="过滤字符串"
逻辑运算符 | AND、OR、NOT |
关系运算符 | <、>、>=、<=、!=、== |
算数 | +、-、*、\、% |
LIKE | like通配符(*和%) |
聚合 | SUM、COUNT、MIN、MAX、AVG |
dv.RowFilter=string.Format("Name like '%{0}%'",textBox.Text);
DataView对象.Sort="列名[ASC|DESC],列[ASC|DESC]....";
dv.Sort="Phone DESC";
dataGridView1.DataSource=dv;
TreeView的常用属性 | |
属性 | 说明 |
Name | 获取或设置控件的名称 |
Nodes | TreeView控件根节点集合 |
SelectedNode | 获取或设置当前TreeView控件中选定的树节点 |
ImageList | 获取或设置当前TreeView控件中所使用的图像集,关联ImageList控件 |
ImageIndex | 获取或设置树节点显示的图像,在ImageList图像集中的索引 |
SelectedImageIndex | 获取或设置节点被选中时显示的图像,在ImageList图像集中的所有 |
TreeView的常用事件 | |
事件 | 说明 |
AfterCollapse | 在折叠对节点后触发 |
AfterExpand | 在展开对节点后触发 |
AfterSelect | 在更改选中节点后触发 |
Click | 在点击TreeView控件时触发 |
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();//展开所有节点
}
TreeView控件.Nodes.Remove(要删除的TreeNode节点对象);
this.tvSTTF.Nodes.Remove(tvNode);
向窗体中添加图像集ImageList控件——将TreeView控件与ImageList控件进行关联——设置ImageIndex属性(默认节点图标)、SelectedImageIndex属性(选中节点图标)
private void treeView1-AfterSelect(Object sender,TreeViewEventArgs e){
TreeNode selectedNode=this.treeView1.SelectedNode;
MessageBox.Show(string.Format("你选中了节点:{0}",selectedNode.Text));
}
ListView控件的常用属性 | |
属性 | 说明 |
Name | 控件名称 |
Items | 包含控件中所有项的集合 |
Columns | 控件中显示的所有列标题的集合 |
View | 控件的显示视图 |
LargeImageList | 当控件以大图标视图显示时使用的ImageList |
SmallImageList | 当控件以小图标视图显示时使用的ImageList |
GridLines | 在包含控件中的行和列之间是否显示网格线 |
MultiSelect | 是否可以选择多项 |
SelectedItems | 获取在控件中选定的项 |
FullRowSelect | 单击某项是否选择其所有子项 |
Clear() 从控件中移除所有项和列,清空ListView
Click 在单击ListView控件时触发
SelectedIndexChanged 当选定项发生更改时触发
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);
}
ListView对象.Items.Remove(要移除的项);
View属性的值及说明 | |
属性 | 说明 |
Details | 详细视图 |
LargeIcon(默认值) | 大图标 |
SmallIcon | 小图标 |
List | 列表 |
Tile | 平铺 |
ContextMenuStrip | 右键菜单 |