1. 程式人生 > >C#中listview的使用方法介紹

C#中listview的使用方法介紹

在.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.Width = 700 ;
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遍歷列。

屬性
ListView控制元件常用屬性及說明如表1所示。