繁体   English   中英

listview C#中的大写项目

[英]uppercase items in listview C#

如何将列表视图中的字符大小写更改为大写? 当我在组合框中选择大写时,列表视图中的项目应该是大写的。 我希望有人能帮我解决这个问题。 提前致谢。

 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
        }
    }

您最好在事件处理程序中为复选框添加案例更改方法以上传它。

因此,您双击复选框控件,然后遍历组合框中的项目,然后在每次迭代中将项目的内容设置为自身,最后使用 .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();
  }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM