ترفندهای برنامه نویسی(2) فیلتر کردن ستون های DataGridView
با سلام
در استفاده از DGV به این نیاز داریم که یک ستون را فیلتر کنیم به عنوان مثال در ستون تلفن یا مبالغ کاربر فقط عدد وارد کند
برای این کار می توانیم event یه textbox را به DGV نسبت دهیم
به عنوان مثال برای این که کاربر فقط عدد وارد کند می توانیم در event KeyPress ، تکست باکس این کد را بنویسم:
private void txtMaliat_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsNumber(e.KeyChar) && !char.IsControl(e.KeyChar))
e.Handled = true;
}
سپس این را به event EditingControlShowing دیتاگرید نسبت دهیم:
private void dataGridViewX2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox text = e.Control as TextBox;
if (dataGridViewX2.CurrentCell.ColumnIndex == dataGridViewX2.Columns["kod"].Index)
{
if (text != null)
text.KeyPress += new KeyPressEventHandler(txtMaliat_KeyPress);
}
else
if (text != null)
text.KeyPress -= new KeyPressEventHandler(txtMaliat_KeyPress);
در شرط if ایندکس فیلدی که در حال تغییر است را با ایندکس ستونی که می خواهیم اعمال کنیم بررسی می کنیم