foreach (Control c in myFlowLayoutPanel.Controls)
{
if (!c.Property.Text.ToLower().Contains(searchBox.Text.ToLower()))
{
myFlowLayoutPanel.Controls.Remove(c);
}
}
Это будет проходить через дочерние элементы панели - вы можете проверить какое-либо свойство в отношении поискового запроса и удалить его, если он не содержит поисковый запрос.
EDIT: на основании вашего комментария, похоже, что вы получаете совпадения только на своих ярлыках, поэтому ваши фотографии уходят. Способ, которым я хотел бы подойти, - создать UserControl, который содержит как изображение, так и метку (щелкните правой кнопкой мыши ваш проект - Добавить - UserControl - укажите его имя). Используйте конструктор для добавления PictureBox и метки (или любых других элементов управления, которые вы уже используете). Ваш код позади для UserControl будет выглядеть примерно так:
public partial class Movie : UserControl
{
public string Title { get; set; } // for easy matching
public Movie()
{
InitializeComponent();
}
public Movie(Image thumbnail, string title) // use this constructor to make your movie tiles
{
InitializeComponent();
pictureBox1.Image = thumbnail;
label1.Text = title;
Title = title;
}
}
Для каждого фильма, вы можете создать экземпляр вашего нового пользовательского UserControl, передавая в уменьшенном изображении и название, а затем добавить весь UserControl к вашему FlowLayoutPanel. Теперь вы можете сохранить или удалить весь UserControl в зависимости от соответствия свойства Title. Ваш цикл foreach изменяется на это:
foreach (Control c in flp.Controls)
{
// Check if the control is one of your custom UserControls:
if (c.GetType() == typeof(Movie))
{
// since it is a "Movie", it is safe to cast it:
Movie movie = (Movie)c;
if (!movie.Title.ToLower().Contains(searchBox.Text.ToLower()))
{
flp.Controls.Remove(c); // remove or keep both the image and text
}
}
}
Большое спасибо! Текстовая часть работает для меня, теперь она позволяет мне видеть это, когда я ищу фильм: [link] (http://imgur.com/download/zQqciyr). –
Но мне все же нужны мои миниатюры для фильма, которые будут показаны при поиске фильма. Думаю это невозможно ... –
@ KeesvanV. Все возможно! Я пересмотрел свой ответ с некоторыми дополнительными предложениями, которые должны указывать на вас в правильном направлении. –