PDA

View Full Version : محدویت بر روی ستونهای datagride



Mahbadgroup
یک شنبه 01 مهر 1386, 08:34 صبح
سلام , خسته نباشید
برای اینکه بتوانم بر روی ستون Datagride محدودیت ایجاد کنم که فقط عدد وارد بشه
باید چکار کنم؟؟

PC2st
یک شنبه 01 مهر 1386, 20:01 عصر
یک دیتاگرید بنام dataGridView1 اضافه کنید و یک column از نوع DataGridViewTextBoxColumn رو اضافه کنید و رویداد EditingControlShowing از دیتاگریدویو رو ایجاد کنید و کدهای زیر رو بنویسید:


private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox text = e.Control as TextBox;
if(text != null) text.KeyPress += new KeyPressEventHandler(text_KeyPress);
}

void text_KeyPress(object sender, KeyPressEventArgs e)
{
if(!char.IsNumber(e.KeyChar)) e.Handled = true;
}

برگرفته از: http://www.developerfood.com/datagridview-how-to-capture-a-cell-s-keypress-event/microsoft-public-vsnet-general/f836f7e9-2e33-4a78-9f10-b420573708ee/article.aspx

Mahbadgroup
دوشنبه 02 مهر 1386, 14:33 عصر
این کد بر روی کل ستونها اعمال می شود اگر بخواهم فقط بر روی ستون خاصی این کار رو انجام بدم باید چکار کنم؟؟؟؟؟؟؟؟؟

PC2st
دوشنبه 02 مهر 1386, 15:53 عصر
میتونی از خاصیت dataGridView1.CurrentCell.ColumnIndex استفاده کنی، مثلا رویداد EditingControlShown رو اینطور تغییر بدید:


private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if(dataGridView1.CurrentCell.ColumnIndex == 1)
{
TextBox text = e.Control as TextBox;
if(text != null) text.KeyPress += new KeyPressEventHandler(text_KeyPress);
}
}

که در ستون دوم فقط میشه عدد وارد کرد.

Mahbadgroup
دوشنبه 02 مهر 1386, 16:06 عصر
یه دنیا ممنون