【问题标题】:listbox display manipulation --highlight first 3 items(not selected row)列表框显示操作——突出显示前 3 个项目(未选择的行)
【发布时间】:2014-04-28 13:51:58
【问题描述】:

我正在使用 wpf 和 C#,使用 Visual Studio 进行应用程序开发。我列出了列表框中的数据(数据取自数据库)。我想操作列表框显示,以便突出显示列表框中的第 3 个项目(不是选定的行),或者可以在第 3 个项目之后绘制一个 lkine .. 或者任何可以吸引用户注意第 3 个项目的东西列表框...我知道它很明显,但是当我使用模糊搜索填充数据时可能并不总是很明显...所以请不要问我为什么要这样做.. 但是,如果您有任何关于如何执行此操作或如何操作列表框显示的信息,请分享:)

谢谢...

【问题讨论】:

    标签: c# wpf visual-studio-2010 listbox


    【解决方案1】:

    由于ListBox 控件是一个元素列表,您可以填充它的数据源,然后以某种方式突出显示三个顶部元素。

    请参阅此问题以获取有关如何为元素着色的参考 :) C# : changing listbox row color?

    【讨论】:

    • 我可以知道否决票的原因,以便我可以改进我的答案吗? ^^
    • 虽然我没有对您投反对票,但我可以看出这是因为您的回答质量不佳。说你可以填充它的数据源,然后以某种方式突出显示三个最重要的元素回答这个问题。此外,这是一个 WPF 问题,您提供了一个 WinForms 问题的链接,所以如果您问我,您很幸运只收到了一张反对票。您的回答当然不值得您投赞成票。最后,您的答案仅包含两句话...我认为您有足够的空间来增强您的答案,即使没有否决的选民发表评论。
    • @Sheridan 没有冒犯,我对这个网站很陌生,像你这样的 cmets 帮助我了解这里的东西是如何制作的 :) 另外,我完全忽略了标签......谢谢指点给我^^
    • 拥有@Landir 是一种很好的态度。如果您有时间,那么您可以从 Stack Overflow Help Center 中找到许多有价值的信息,这将使您能够充分利用这个伟大的网站。
    • @Landir 我不能说我有足够的领域知识来知道这个答案是否有用,但我很好奇你没有编辑或删除这个答案以回应谢里丹的评论,尽管回复了它并且对所说的内容没有异议。
    【解决方案2】:

    对于 Asp.Net:-

    您可以更改要突出显示的项目的颜色

    你可以把它放在Page_Load中

    ListBox1.Items[0].Attributes.Add("style", "color: #F00");
    ListBox1.Items[1].Attributes.Add("style", "color: #F00");
    ListBox1.Items[2].Attributes.Add("style", "color: #F00");
    

    ListBox1 是列表框的名称

    【讨论】:

    • 您知道如何在组合框中完成此操作吗?我也在使用 Itemsource 将数据绑定到组合框
    • @user3218207 你的意思是 DropDownList,不是吗..!! (stackoverflow.com/questions/2176297/…) 好的,那么你可以编写这段代码 foreach (ListItem myItem in DropDownList1.Items) { myItem.Attributes.Add("style", "color:red"); }
    • @Gk_999,我认为 OP 想要 ComboBox,因为他明确指出 我正在使用 wpf 并且问题标记为 WPF 而不是 ASP.NET。不知道您为什么要投票,更不用说接受的答案了,因为除非用户标记问题错误,否则这不会在 WPF 中编译。
    • @dkozl Thanx 4 通知我的错误,我添加了另一个答案 w.r.t. wpf
    【解决方案3】:

    对于 WPF(列表框从数据库中获取项目)

    在我的示例中,我将国家/地区名称从表格国家添加到列表框中。

    然后,我将突出显示列表框的前 3 个条目:

                SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=db_myDB;Integrated Security=true");
                SqlDataReader myReader=null;
    
                int i = 0;
    
                myConnection.Open();
    
    
    
                 myReader = new SqlCommand("select  countryname from dbo.countries", myConnection).ExecuteReader();
    
                    while (myReader.Read())
                    {
    
                        ListBoxItem li = new ListBoxItem();
                        li.Content = myReader.GetString(0);
                        listBox1.Items.Add(li);
    
                        if(i<3)
                        li.Background = Brushes.Blue;
    
                        i++;
                    }
    
                  myConnection.Close();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 2015-12-21
      • 2011-03-29
      相关资源
      最近更新 更多