2015-10-06 53 views
-2

我怎麼能更改字符外殼在我的列表視圖爲大寫?當我在組合框中選擇大寫時,listview中的項目應該是大寫。我希望有人能幫助我。提前致謝。大寫項目

private void Form1_Load(object sender, EventArgs e) 
    { 
     showlv("SELECT a.customer_name, a.address, b.product_name, b.price FROM tbl_customer AS a INNER JOIN tbl_transaction AS b WHERE a.customer_code = b.customer_code", lvcust); 
    } 

    private void showlv(string sql, ListView lv) 
    { 
     try 
     { 
      lvcust.View = View.Details; 
      lvcust.FullRowSelect = true; 
      lvcust.GridLines = true; 
      conn.Open(); 
      MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      conn.Close(); 

      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       DataRow dr = dt.Rows[i]; 
       ListViewItem lvitem = new ListViewItem(dr["customer_name"].ToString()); 
       lvitem.SubItems.Add(dr["address"].ToString()); 
       lvitem.SubItems.Add(dr["product_name"].ToString()); 
       lvitem.SubItems.Add(dr["price"].ToString()); 
       lvcust.Items.Add(lvitem); 
      } 

      string[] column = new string[4] { "Customer Name", "Address", "Product Name", "Price" }; 

      for (int x = 0; x < column.Length ; x++) 
      { 
       lvcust.Columns.Add(column[x]); 
      } 
     } 
     catch (Exception er) 
     { 
      MessageBox.Show(er.Message); 
     } 
    } 

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (comboBox1.SelectedItem.Equals("Ascend")) 
     { 
      lvcust.Sorting = SortOrder.Ascending; 
     } 
     else if (comboBox1.SelectedItem.Equals("Descend")) 
     { 
      lvcust.Sorting = SortOrder.Descending; 
     } 
     else if (comboBox1.SelectedItem.Equals("Uppercase")) 
     { 
      //code to uppercase items in listview 
     } 
    } 
+1

String.ToUpper() –

+0

你能請張貼整個代碼怎麼我是在這個新的語言。 – Jay

+2

更容易,如果您發佈的代碼,你有什麼到目前爲止 –

回答

0

您最好在複選框的事件處理程序中添加您的案例更改方法以上載它。

因此,您雙擊複選框控件,然後遍歷組合框中的項目,然後在每次迭代中將項目內容設置爲自身,並在末尾使用.ToUpper()。

0

我假設你只想大寫的客戶名稱。訣竅是將原始值存儲爲ListItem的標籤。這樣,如果需要,您可以稍後將文本更改回原始(非大寫)值。因此,在你的代碼中,找到第一行,並添加下面的第二個:

ListViewItem lvitem = new ListViewItem(dr["customer_name"].ToString()); 
lvitem.Tag = dr["customer_name"].ToString(); 

現在,你有,這裏的for循環將其轉換爲大寫:

ListViewItemCollection items = lvcust.Items; 
for(int i=0;i<items.Count;i++){ 
    ListViewItem item = items.Item[i]; 
    object tag = item.Tag; 
    if(tag is string){ 
    item.Text = ((string)tag).ToUpper(); 
    } 
} 

這完全是在文本編輯器中關閉我的頭頂,所以這裏或那裏可能存在語法問題,但邏輯應該是正確的。