2015-10-06 26 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(); 
    } 
} 

这完全是在文本编辑器中关闭我的头顶,所以这里或那里可能存在语法问题,但逻辑应该是正确的。