What's new

C# Load, Search and Clear Items in ListBox [Tutorial 5]

Kaya pala, hindi talaga masstore yung items kasi di mo ginamit tong codes:

C#:
private void LoadItems()
        {
            using (var ofd = new OpenFileDialog() {
                Filter =
                "Audio Files (*.mp3, *.mp4, *.wmv, *.m4a) | *.mp3; *.mp4; *.wmv; *.m4a" +
                "|Video Files (*.mp4, *.mkv, *.ts, *.flv, *.m4v) | *.mp4; *.mkv; *.ts; *.flv, *.m4v" +
                "|Image Files (*.jpg, *.jpeg, *.png) | *.jpg; *.jpeg; *.png" +
                "|Text Files (*.txt) | *.txt" +
                "|All Files (*.*) | *.*",
                Multiselect = true,
                RestoreDirectory = true,
                //AutoUpgradeEnabled = false //kung gusto mo old windows xp style enable mo
            })
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    var items = new List<string>();
                    var fileName = ofd.FileNames;
                    foreach(var name in fileName) {
                        items.Add(Path.GetFileName(name));
                    }
                
                    AddListBoxItems(items.ToArray());
                    allItems.AddRange(listBox1.Items.Cast<string>().ToList());
                }
            }
        }

yan ang gamitin mo instead of this:

C#:
 private void button3_Click(object sender, EventArgs e)
        {

            OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
            OpenFileDialog1.Multiselect = true;
            if (OpenFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                files = OpenFileDialog1.SafeFileNames;
                paths = OpenFileDialog1.FileNames;
                for (int i = 0; i < files.Length; i++)
                {
                    listBox1.Items.Add(files[i]);
                }
            }
        }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test_serach_file_on_listbox
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}
List<string> allItems = new List<string>();

private void textBox1_TextChanged(object sender, EventArgs e)
{
SearchItems(textBox1.Text);
}

//here's the function. you can make static for global use
private void SearchItems(string searchItem)
{

//clear existing items
listBox1.Items.Clear();

for (int i = listBox1.Items.Count - 1; i >= 0; i--)
{
if (listBox1.Items.ToString().Contains(searchItem))
{
listBox1.SetSelected(i, true);
}
else
{
listBox1.Items.RemoveAt(i);
}
}

if (string.IsNullOrEmpty(textBox1.Text))
{
listBox1.SelectedItems.Clear();
AddListBoxItems(allItems);
}
}

private void AddListBoxItems(IEnumerable<string> items)
{
listBox1.BeginUpdate();
listBox1.Items.AddRange(items.ToArray()
.Where(x => !listBox1.Items.Cast<string>()
.Any(item => x.Equals(item, StringComparison.InvariantCultureIgnoreCase))).ToArray());
listBox1.EndUpdate();

}

private void button1_Click(object sender, EventArgs e)
{
using (var ofd = new OpenFileDialog()
{
Filter = "Audio Files (*.mp3, *.mp4, *.wmv, *.m4a) | *.mp3; *.mp4; *.wmv; *.m4a |" +
"Video Files (*.mp4, *.mkv, *.ts, *.flv, *.m4v) | *.mp4; *.mkv; *.ts; *.flv, *.m4v |" +
"Image Files (*.jpg, *.jpeg, *.png) | *.jpg; *.jpeg; *.png |" +
"All Files (.) | .",
Multiselect = true,
RestoreDirectory = true
})
{
if (ofd.ShowDialog() == DialogResult.OK)
{
var items = new List<string>();
//get the filenames
var fileName = ofd.FileNames;
foreach (var name in fileName)
{
items.Add(Path.GetFileName(name));
}

AddListBoxItems(items.ToArray());
allItems.AddRange(listBox1.Items.Cast<string>().ToList());
}
}
}
}
}
ito idol di pa rin gumagana sakin bakit kaya?
 
ayu
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace test_serach_file_on_listbox
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}
List<string> allItems = new List<string>();

private void textBox1_TextChanged(object sender, EventArgs e)
{
SearchItems(textBox1.Text);
}

//here's the function. you can make static for global use
private void SearchItems(string searchItem)
{

//clear existing items
listBox1.Items.Clear();

for (int i = listBox1.Items.Count - 1; i >= 0; i--)
{
if (listBox1.Items.ToString().Contains(searchItem))
{
listBox1.SetSelected(i, true);
}
else
{
listBox1.Items.RemoveAt(i);
}
}

if (string.IsNullOrEmpty(textBox1.Text))
{
listBox1.SelectedItems.Clear();
AddListBoxItems(allItems);
}
}

private void AddListBoxItems(IEnumerable<string> items)
{
listBox1.BeginUpdate();
listBox1.Items.AddRange(items.ToArray()
.Where(x => !listBox1.Items.Cast<string>()
.Any(item => x.Equals(item, StringComparison.InvariantCultureIgnoreCase))).ToArray());
listBox1.EndUpdate();

}

private void button1_Click(object sender, EventArgs e)
{
using (var ofd = new OpenFileDialog()
{
Filter = "Audio Files (*.mp3, *.mp4, *.wmv, *.m4a) | *.mp3; *.mp4; *.wmv; *.m4a |" +
"Video Files (*.mp4, *.mkv, *.ts, *.flv, *.m4v) | *.mp4; *.mkv; *.ts; *.flv, *.m4v |" +
"Image Files (*.jpg, *.jpeg, *.png) | *.jpg; *.jpeg; *.png |" +
"All Files (.) | .",
Multiselect = true,
RestoreDirectory = true
})
{
if (ofd.ShowDialog() == DialogResult.OK)
{
var items = new List<string>();
//get the filenames
var fileName = ofd.FileNames;
foreach (var name in fileName)
{
items.Add(Path.GetFileName(name));
}

AddListBoxItems(items.ToArray());
allItems.AddRange(listBox1.Items.Cast<string>().ToList());
}
}
}
}
}
ito idol di pa rin gumagana sakin bakit kaya?
s na pala ... sa ginawa ko
 
Back
Top