【问题标题】:Highlight specific items in listbox based on their status in database根据它们在数据库中的状态突出显示列表框中的特定项目
【发布时间】:2020-05-24 22:02:10
【问题描述】:

我在数据库中有一个包含 ID、名称和性别列的表。我这样填充列表框:

    public void fill_listbox()    
    {
        lbProjects.Items.Clear();
        con.Open();
        cmd = new SqlCommand("SELECT name FROM Table1", con);
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        foreach (DataRow dr in dt.Rows)
        {
            lbProjects.Items.Add(dr["name"].ToString());
        }
        con.Close();
    }

是否可以突出显示(不选择)列表框中所有具有特定性别的项目? 例如,更改数据库中所有性别为“男性”的项目的背景颜色/字体粗细/字体颜色。

如果无法使用列表框,我还可以使用什么其他组件?

【问题讨论】:

标签: c# .net


【解决方案1】:

改用listview解决了。

public void fill_listbox()
    {
        listView1.Columns.Add("", -2, HorizontalAlignment.Left); 
        listView1.Items.Clear();
        con.Open();
        cmd = new SqlCommand("SELECT name,gender FROM Table1", con);
        cmd.ExecuteNonQuery();
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        foreach (DataRow dr in dt.Rows)
        {
            ListViewItem lvi = new ListViewItem();

            if (dr["gender"].ToString() == "male")
            {
                lvi.Text = dr["name"].ToString();
                lvi.ForeColor = Color.Blue;
                listView1.Items.Add(lvi);
            }
            else {
                lvi.Text = dr["name"].ToString();
                lvi.ForeColor = Color.Pink;
                listView1.Items.Add(lvi);
            }
        }
        con.Close();

    }

【讨论】:

    猜你喜欢
    • 2020-11-14
    • 2021-08-04
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多