چطور ميشه به سلول ديتاگريدويو فهموند كه فقط داخلش فارسي تايپ بشه؟!!
ببخشيد عنوان را نشد ويرايش كنم اشتب زدم
چطور ميشه به سلول ديتاگريدويو فهموند كه فقط داخلش فارسي تايپ بشه؟!!
ببخشيد عنوان را نشد ويرايش كنم اشتب زدم
دوست عزیر در خاصیت keypress می تونید چک کنید که ورودی فقط فارسی باشه
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;
}
با تشكر از اساتيد
به این صورت تکمیلش کردم فقط اگر یک توضیحی در مورد رویداد 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("لطفا فقط فارسي");
}
}
}
آخرین ویرایش به وسیله sabz12 : شنبه 06 تیر 1394 در 10:25 صبح