我正在开发一个供个人使用的项目(简单的电话簿)。在这里你可以看看它的样子:
图片:http://s24.postimg.org/e37syu5x1/screenshot_66.png
因此,首先,您必须在txtSearch中键入内容,然后按下旁边的“搜索”按钮。该按钮执行以下操作:
private void toolStripButton1_Click_1(object sender, System.EventArgs e)
{
txtSearch_TextChanged();
}
其中 txtSearch_TextChanged(); 是:
void txtSearch_TextChanged()
{
foreach (ListViewItem item in listView1.Items)
{
//Selected = true, won't show until the listview has focus, but setting it to true puts it in the
//SelectedItems collection.
if (item.Text.ToLower().StartsWith(txtSearch.Text.ToLower()))
{
item.Selected = true;
item.BackColor = Color.CornflowerBlue;
item.ForeColor = Color.White;
}
else
{
item.Selected = false;
item.BackColor = Color.White;
item.ForeColor = Color.Black;
}
}
//When the selection is narrowed to one the user can stop typing
if (listView1.SelectedItems.Count == 1)
{
listView1.Focus();
}
}
问题在于我搜索的联系人仍然被选中(或专注?) - 在这种情况下, 4 ,因为我正在搜索 4 。
我尝试将取消焦点()附加到 RefreshAll(),但遗憾的是没有成功:
void Unfocus()
{
if (listView1.SelectedItems.Count != 0)
{
listView1.SelectedItems[0].Selected = false;
}
if (listView1.FocusedItem != null)
{
listView1.FocusedItem.Focused = false;
}
}
void RefreshAll()
{
txtSearch.Text = "";
UserCount();
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
dateTimePicker1.Value = DateTime.Now;
textBox1.ReadOnly = false;
textBox2.ReadOnly = false;
textBox3.ReadOnly = false;
textBox4.ReadOnly = false;
textBox5.ReadOnly = false;
textBox6.ReadOnly = false;
dateTimePicker1.Enabled = true;
toolStripEdit.Enabled = false;
Unfocus();
}
此外,我想要以下内容:当我搜索联系人并找到它时,它显示为列表视图中的唯一项目(列表视图不应包含其他联系人,除了我正在搜索的那个(成功) )。在这种情况下,它将 4 。顺便说一下,它应该是这样的:
图片:http://s24.postimg.org/r8nb4xzsl/screenshot_66.png
说到这一点,经过多次尝试后,我陷入了困境:
listView1.Clear();
答案 0 :(得分:0)
答案 1 :(得分:0)
哦,问题是我没有看到几行代码用于为所选项目分配一些不同的颜色......我删除了它,现在一切正常。