在.Net FrameWork SDK中定义了许多组件,Visual C#就是通过获得这些组件的实例来丰富自己的界面的。列表(ListView)是程序设计中一个常用的组件,由于其自身的特点,往往被使用显示比较庞大的数据信息。本文就是利用他的这个特点来看看它如何来显示数据记录。
一. 程序设计和运行的环境
(1).微软视窗2000专业版本
(2)..Net FrameWork SDK Beta 2
(3).Microsoft Data Acess Component 2.6 (MDAC2.6)
二. 程序设计的具体思路
(1).首先要建立数据连接,打开数据集
(2).对列表进行初始化,并使得列表的显示条件符合数据记录的条件
(3).对数据集中的数据记录进行遍历,在遍历中添加记录到列表中
(4).关闭数据集,关闭数据连接
如何用C#代码选中listview的复选框
listView1.Items.Add("Goods", 0);
listView1.Items[0].Checked = true;
或者
System.Windows.Forms.ListViewItem listViewItem1 = new
System.Windows.Forms.ListViewItem("Goods");
listViewItem1.Checked = true;
listView1.Items.Add(listViewItem1);
//////////////////////////////////////////
C#的listView控间打开时默认选中第一行的属性或代码?
就是C#里窗体的ListView控件 在打开窗体后ListView里默认选中第一行 的代码或属性
我知道:
private void Form1_Load(object sender, EventArgs e)
{
listView1.Focus();
listView1.Items[0].Selected = true;
}
三. 具体的实现步骤
(1).首先要建立数据连接,打开数据集
对于如何建立数据连接和获得数据集的内容可以参考本站的一篇文章--《在Visual C#中访问不同的数据库教程》,在此文中对此类问题有比较详细的介绍,本文就不多叙述,具体实现语句如下:
// 定义数据连接的字符串,程序中使用的是Acess 2000数据库
private static string strConnect = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
Application.StartupPath + "MY.MDB" ;
private OleDbConnection conConnection = new OleDbConnection ( strConnect ) ;
OleDbDataReader reader ;
// 获得Person里面的所以数据记录
string strCommand = "SELECT * FROM Persons" ;
this.conConnection.Open ( ) ; // 打开数据连接
OleDbCommand cmd = new OleDbCommand ( strCommand , conConnection ) ;
reader = cmd.ExecuteReader ( ) ; file://获得数据集
(2).对列表进行初始化,并使得列表的显示条件符合数据记录的条件。需要说明的是在下面源代码中,lv是在Class中定义的一个ListView的一个实例
// 初始化ListView
lv = new ListView ( ) ;
lv.Left = 0 ;
lv.Top = 0 ;
lv.;
lv.Height = this.ClientRectangle.Height ;
lv.GridLines = true ; file://显示各个记录的分隔线
lv.FullRowSelect = true ; file://要选择就是一行
lv.View = View.Details ; file://定义列表显示的方式
lv.Scrollable = true ; file://需要时候显示滚动条
lv.MultiSelect = false ; // 不可以多行选择
lv.HeaderStyle = ColumnHeaderStyle.Nonclickable ;
// 针对数据库的字段名称,建立与之适应显示表头
lv.Columns.Add ( "姓名" , 60 , HorizontalAlignment.Right ) ;
lv.Columns.Add ( "住宅电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "办公电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "移动电话" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "居住地点" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "工作单位" , 100 , HorizontalAlignment.Left ) ;
lv.Columns.Add ( "电子邮件" , 100 , HorizontalAlignment.Left ) ;
lv.Visible = true ;
(3).对数据集中的数据记录进行遍历,在遍历中添加记录到列表中。
可以利用数据集中的Read ( )方法,来实现对数据记录的遍历,Read ( )方法是首先指向首数据记录,并判断从此记录是否为尾记录,如果不是则返回false,如果是则返回true。并且如果不是尾记录则自动把数据指针移到下一条记录上,然后在判断此记录是否是尾记录,如此循环,直至到尾记录为止。根据此可设计以下代码:
string list = "";
for (int i = 0; i < this.listView1.CheckedItems.Count; i++)
{
if (this.listView1.CheckedItems[i].Checked)
{
list += this.listView1.CheckedItems[i].Text + ",";
}
}
在打开窗体后ListView里默认选中第一行 的代码或属性,可以在两个地方去做:
1 窗体的构造中
2 窗体的Load中Form1_Load
然后通过设置listView1.Items[0].Selected = true; 即可默认选中第一,
但是前提是你的listView1控件必须创建了,同时设置了数据项才可以。
否则会取listView1.Items[0]时会报错,最好之前做判
断,如if(listView1.Items.Count>0),避免出现异常
//////////////////////////////////////////////////////
我在ListView外放了个按钮用来检测它前面的checkBox有没选中!
private void button1_Click(object sender, EventArgs e)
{
//选中行大于0时(选中多行时默认是判断选中的第一行)
if (listView1.SelectedItems.Count > 0)
{
//用来显示checkBox到底有没选中,true为真
MessageBox.Show(listView1.SelectedItems[0].Checked.ToString());
}
}
listView1.SelectedItems[0].Checked即为你所需要的值!!本人经过测试!通过!
///////////////////////////////
c# winform 如何读取 listview里的每一条数据
listview中有rows属性,rows属性中有columns属性。
////////////////////////////////////////////////
遍历ListView然后执行INSERT语句啊。。。
Web用:
foreach(ListViewDataItem lvdi in ListView1.Items)
{
}
WinForm用:
foreach(ListViewItem lvi in ListView1.Items)
{
}
/////////////////////////////
C# 获取listview 单元格
listView1.Items[listView1.SelectedIndices[0]].SubItems[0].Text
listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text
很简单,用下面这句话就可以了,测试过的
取得选中行的第一列时:
string str = listView1.FocusedItem.Text;
或者
string str = listView1.FocusedItem.SubItems[0].Text;
取得需中行的第二列时:
string str = listView1.FocusedItem.SubItems[1].Text;
依次类推...
你可以通过rows遍历行,然后通过columns遍历列。