PDA

View Full Version : تایپ فقط فارسی در سلول datagridview



sabz12
پنج شنبه 04 تیر 1394, 11:16 صبح
چطور ميشه به سلول ديتاگريدويو فهموند كه فقط داخلش فارسي تايپ بشه؟!!
ببخشيد عنوان را نشد ويرايش كنم اشتب زدم:ناراحت:

crazy_1892
پنج شنبه 04 تیر 1394, 18:16 عصر
دوست عزیر در خاصیت keypress می تونید چک کنید که ورودی فقط فارسی باشه

دلتنگ اسمان
پنج شنبه 04 تیر 1394, 19:06 عصر
Control cntObject;
private static void myTextKeyPress(object sender, KeyPressEventArgs e)
{
char keyChar = e.KeyChar;
if (!(keyChar < 90 || keyChar > 122))
{
e.Handled = true;
}
}
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.Rows[row].Cells[1].Selected)
{
e.Control.KeyPress += new KeyPressEventHandler(myTextKeyPress);
cntObject = e.Control;
cntObject.KeyPress += myTextKeyPress;
}
}


private void textBoxMetod()
{
System.Windows.Forms.TextBox myText = new System.Windows.Forms.TextBox();
this.Controls.Add(myText);
}
int row;
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
{
row = e.RowIndex;
}

sabz12
شنبه 06 تیر 1394, 07:56 صبح
با تشكر از اساتيد
به این صورت تکمیلش کردم فقط اگر یک توضیحی در مورد رویداد EditingControlShowing بدهید و بگید در اموزش شی گرایی کجای ان مربوط میشه ممنون می شم.کجای شی گرایی در مورد استفاده دو رویداد هم زمان صحبت شده برای درک بهتر کجا را باید مطالعه کنم؟!!!! با تشکر فراوان

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
e.Control.KeyPress -= new KeyPressEventHandler(dataGridView1_KeyPress);
if (dataGridView1.CurrentCell.ColumnIndex == 1) //Desired Column
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
tb.KeyPress += new KeyPressEventHandler(dataGridView1_KeyPress);
}
}
if (dataGridView1.CurrentCell.ColumnIndex == 2) //Desired Column
{
TextBox tb = e.Control as TextBox;
if (tb != null)
{
tb.KeyPress += new KeyPressEventHandler(dataGridView1_KeyPress);
}
}
}


private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 1)
{
if ((e.KeyChar >= 'آ' && e.KeyChar <= 'ي'))
{
e.Handled = true;///حروف انگليسي ممنوع
MessageBox.Show("لطفا فقط انگليسي");

}
}
//
if (dataGridView1.CurrentCell.ColumnIndex == 2)
{
if ((e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z'))
{
e.Handled = true;///حروف انگليسي ممنوع
MessageBox.Show("لطفا فقط فارسي");

}
}
}