Merhaba arkadaşlar, bu makalemizde Listboxta arama
yapacağız. Bulunan kayıtların yazı ve arka plan rengini değiştireceğiz.
ListBox ın SelectionMode özelliğini MultiSimple yapın.
ListBox ın yazı ve arka plan rengini değiştirebilmek için, DrawMode özelliğini
OwnerDrawFixed olarak seçmemiz gerekmektedir.
Şekil 1
Şekil 2
Form1.cs
using System;
using
System.Collections.Generic;
using
System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace listbox_search
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.SelectionStart = textBox1.Text.Length;
for (int i = 0; i < listBox1.Items.Count; i++)
{
if (listBox1.Items[i].ToString().Contains(textBox1.Text))
{
listBox1.SetSelected(i, true);
if (textBox1.Text == "")
{
listBox1.SetSelected(i,
false);
}
}
else
{
listBox1.SetSelected(i, false);
}
}
}
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
ListBox listBox = (ListBox)sender;
e.DrawBackground();
Brush myBrush = Brushes.Black;
Font myFont;
if ((e.State &
DrawItemState.Selected) == DrawItemState.Selected)
{
myBrush = Brushes.Red;
myFont= e.Font;
listBox1.Font = new Font("Arial", 12, FontStyle.Bold);
e.Graphics.FillRectangle(new SolidBrush(Color.Yellow), e.Bounds);
}
else
{
myFont = new Font("Arial", 12, FontStyle.Regular);
e.Graphics.FillRectangle(Brushes.White, e.Bounds);
}
e.Graphics.DrawString(listBox.Items[e.Index].ToString(), myFont,
myBrush, e.Bounds);
}
}
}
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN
0 comments:
Yorum Gönder