PDA

View Full Version : سوال: مشکل با enter برای حرکت بین فرم



na3er-faraji
یک شنبه 11 مهر 1389, 14:22 عصر
سلام. میخام اگه تکست باکس پر بود با زدن دکمه enter بره فیلد بعدی. اما کار نمیکنه. مشکل از چیه؟؟؟



void buyFactor_StuffNameKeyPress(object sender, KeyPressEventArgs e)
{
buyFactor = sender as UC.Factor;
e.Handled = true;

if (Convert.ToInt32(e.KeyChar) == 32 && buyFactor.StuffName != "")
{
SendKeys.Send("{Tab}");
}
else
{
frmSelectStuff selectStuff = new frmSelectStuff();

selectStuff.SelectStuffName = e.KeyChar.ToString();
selectStuff.ShowDialog();

//Check the form SelectStuff for Click Button Ok
if (selectStuff.SelectStuffId > 0)
{
DataTable dt = new DataTable();

dt = stuff.GetStuffAndUntiByStuffId(selectStuff.SelectS tuffId);

//Set Property
buyFactor.StuffName = dt.Rows[0]["StuffName"].ToString();
buyFactor.UnitName = dt.Rows[0]["UnitName"].ToString();
buyFactor.StuffId = Convert.ToInt16(dt.Rows[0]["StuffId"].ToString());
buyFactor.UnitId = Convert.ToInt16(dt.Rows[0]["UnitId"].ToString());
}

//if form sell find pricesell
if (form == 2)
{
buyFactor.PriceSell = buy.GetPriceSell(selectStuff.SelectStuffId);
}
}
}

وقتی برنمم رو روی این خط متوقف میکنم سیستم هنگ میکنه


if (Convert.ToInt32(e.KeyChar) == 32 && buyFactor.StuffName != ""

mahziar
یک شنبه 11 مهر 1389, 14:32 عصر
سلام

خوب میتونی از keyDown استفاده کنی


private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13&&textBox1.Text!="")
textBox2.ّFocus();
}

na3er-faraji
یک شنبه 11 مهر 1389, 14:36 عصر
سلام

خوب میتونی از keyDown استفاده کنی


private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13&&textBox1.Text!="")
textBox2.ّFocus();
}


دوست عزیز تو keydown نمیتونی Handled رو دستکاری کرد؟ یعنی نمیدونم چرا کار نمیکنه؟ واسه همین مجبور شدم با keypress کار کنم

mahziar
یک شنبه 11 مهر 1389, 14:49 عصر
من که تو کدی که گذاشتی نمیبینم جایی Handled رو دستکاری کرده باشی

na3er-faraji
یک شنبه 11 مهر 1389, 14:58 عصر
e.Handled = true;


خط چهارم....

mahziar
یک شنبه 11 مهر 1389, 15:08 عصر
خوب من با یه متغیر بین keydown و KeyPressارتباط برقرار کردم .
این کد از وارد کردن حروف جلوگیری میکنه و فقط عدد باید توش وارد کرد .


private bool nonNumberEntered;
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
{
if (e.KeyCode != Keys.Back)
{
nonNumberEntered = true;
}
}
}
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (nonNumberEntered == true)
{
e.Handled = true;
}
}

na3er-faraji
یک شنبه 11 مهر 1389, 16:51 عصر
دوستان بنا به دلایلی نمیتونم از keydown استفاده کنم. کسی میتونه رو همین کد خودم بگه مشکل از کجاست؟؟؟