c#的列表视图中的大写项

本文关键字:视图 列表 | 更新日期: 2023-09-27 18:16:13

如何将列表视图中的字符大小写改为大写?当我在组合框中选择大写时,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
        }
    }

c#的列表视图中的大写项

您最好在复选框的事件处理程序中添加大小写更改方法来上传它。

因此,双击复选框控件,然后遍历组合框中的项,然后在每次迭代时将项的内容设置为自身,并在末尾使用. toupper()。

我假设您只想大写客户名称。诀窍是将原始值存储为ListItem的标记。这样,如果需要的话,您可以稍后将Text更改回原始(非大写)值。因此,在您的代码中,找到第一行并添加下面的第二行:

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();
  }
}

这些都是在文本编辑器中完成的,所以这里或那里可能有语法问题,但逻辑应该是正确的。