使用搜索事件调整事件大小是否独立? ListView + TextBox c#
问题描述:
正在寻找ListView中的项目的应用程序。我已经添加了一个liitle位逻辑,看起来更好。 首先,我添加了List View Columns
的逻辑 - 适合内容的列大小。 然后通过ID进行搜索 - 正在工作。 我的问题是如果这两个事件互相依赖?意思..虽然我试图搜索它获得不确定的循环与调整大小,它使“崩溃”。我的代码依赖的是:使用搜索事件调整事件大小是否独立? ListView + TextBox c#
//调整
void DeviceListView_Resize(object sender, EventArgs e)
{
controller.ResizeColumns((ListView)sender);
}
public void ResizeColumns(ListView lv)
{
foreach (ColumnHeader column in lv.Columns)
{
column.Width = -2;
}
}
//搜索
void SearchBox_TextChanged(object sender, EventArgs e)
{
controller.Search();
}
public void Search()
{
myListView.Items.Clear();
myListView.Items.AddRange(myList.Where(i => string.IsNullOrEmpty(searchBox.Text) || searchBox.Text.Contains("Search") || i.esn.Contains(searchBox.Text))
.Select(c => new ListViewItem (
new string[] {c.ID, c.Name, (...), c.Smth}
)).ToArray());
}
//搜索框占位
void SearchBox_TextChanged(object sender, EventArgs e)
{
controller.Search();
}
void TextGotFocus(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
if(tb.Text == "Search...")
{
tb.Text = "";
tb.ForeColor = Color.Black;
}
}
void TextLostFocus(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
if(tb.Text == "")
{
tb.Text = "Search...";
tb.ForeColor = Color.LightGray;
}
}
整个应用程序已经有很多代码行,只是发布这个。 Btw。我的怀疑是Search
方法中包含:myListView.Items.Clear();
如果我不清除它它不会做任何事情,但搜索将不会有用法。 在此先感谢!
答
是的,他们是相互独立的,不知何故 - 我不知道:)如果解决了我的问题,这看起来像:
全局变量:
bool resized = false;
if (!resized)
{
foreach (ColumnHeader column in lv.Columns)
{
column.Width = -2;
}
resized = true;
}