【问题标题】:How to select (highlight) an Item in an already existing listbox如何在现有列表框中选择(突出显示)项目
【发布时间】:2012-05-26 06:08:42
【问题描述】:

我有一个已经存在的listbox,需要显示我从数据库中检索到的值。

这里需要在插入之前检查值,如果它已经存在,则寻找突出现有项目的方法。

这是我正在使用的代码

try { 
     myConnection.Open(); 
     SqlCommand myCommand2 = new SqlCommand("SELECT * FROM PatientDataFields where  PatientID='" + x + "'", myConnection); 
     SqlDataReader rdr = myCommand2.ExecuteReader(); 

     while (rdr.Read()) 
     { 
         Form2 form2 = new Form2(); 
         form2.Show();
         form2.Race.SelectedItem = rdr["Race"].ToString();
     } 
    }

【问题讨论】:

  • 这是 winforms、wpf 还是 asp.net?在我们至少知道这一点之前,我们甚至无法开始回答。
  • 我们能看看你到目前为止做了什么吗!!!似乎您的问题标题比问题描述包含更多信息...请花点时间查看 stackoverflow.com/faq
  • 在winforms中。我使用了以下代码。尝试 { myConnection.Open(); SqlCommand myCommand2 = new SqlCommand("SELECT * FROM PatientDataFields where PatientID='" + x + "'", myConnection); SqlDataReader rdr = myCommand2.ExecuteReader(); while (rdr.Read()) { Form2 form2 = new Form2(); form2.Show();form2.Race.SelectedItem = rdr["Race"].ToString();}
  • 上面的代码没有显示你是如何填充列表框的。 (您是否已经用可能的项目填充了它?)我想您已经用字符串项目填充了一个名为Race 的列表框。您需要突出显示与从 db 检索到的值匹配的那个。我是对还是错?
  • 是的,你是对的,史蒂夫

标签: c# .net sql-server winforms


【解决方案1】:

这样做,并确保从db返回的值必须存在于列表框控件项中

如果数据库值在列表框的文本字段中(DataTextField)

listbox.SelectedText = valueFromDB;

或者如果数据库值在listBox的值域(DataValueField)中

listbox.SelectedValue = valueFromDB;

【讨论】:

  • 我无法在列表框中看到使用上述 cmets 从 DB 检索到的值突出显示的项目。
  • 你说的高亮是什么意思,你的意思是选中了吗?
  • 这是它的工作方式。我将表单(比如 Form1)中的一些值提交到数据库中。所以 Form1 由文本框、列表框等组成。现在从另一个表单(比如 form2)我调用 form1 来显示我之前提交给数据库的值。所以 Db 应该返回已经提交的值。
  • 很好,值应该存在于列表框中才能被选中
【解决方案2】:

如果您想要多选,请确保将 SelectionMode 设置为 MultiSimple。你的其余代码对我来说看起来不错。

try 
{ 
    myConnection.Open(); 
    SqlCommand myCommand2 = new SqlCommand("SELECT * FROM PatientDataFields where  PatientID='" + x + "'", myConnection); 
    SqlDataReader rdr = myCommand2.ExecuteReader(); 

    Form2 form2 = new Form2(); 
    form2.Show();
    form2.Race.SelectionMode = SelectionMode.MultiSimple;
    while (rdr.Read()) 
    {
        string item = rdr["Race"].ToString();

        if (form2.Race.FindString(item) != -1)
            form2.Race.SelectedItem = item;
        else
            form2.Race.Items.Add(item);
    } 
}

【讨论】:

  • 非常感谢..!!问题是我没有从从数据库中检索到的值中删除空格
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-28
  • 2014-02-27
相关资源
最近更新 更多