PDA

View Full Version : پرش از تکس باکس با زدن دکمه اینتر



mahshahr-bayan
دوشنبه 04 مهر 1390, 09:47 صبح
با سلام
دوستان من کدی نوشتم که با زدن اینتر به تکس باکس دیگری برود با تنظیم فوکوس ولی وقتی اینتر را میزنم قبل از رفتن یک سطر خالی در تکس باکس ایجاد میکند بطوری که نمیتوان نوشته خود را داخل تکس باکس دید.ممنون میشم اشتباه کارم را توضیح بدید. یا اگه روش بهتری دارید .

nilmil_nil
دوشنبه 04 مهر 1390, 10:53 صبح
سلام
بهتر بود که کدتون رو میذاشتین

این کد رو امتحان کنید
و توی رویدادKeyDown بنویسید

if (e.KeyCode == Keys.Enter)
{
textBox1.Focus();
}


یه راه دیگه هم داره که اگه خواستی بگو برات بنویسم

مرتضی تقدمی
دوشنبه 04 مهر 1390, 13:06 عصر
سلام
شما می خواین اگه توی textbox بود و اینتر رو زد به focus بعدی بره و اون اینتر هم توی textbox ثبت نشه دیگه؟ پس کد بصورت زیر میشه :
توی رویداد KeyPress تکست باکس قرار بدید :


If e.KeyChar = Chr(Keys.Enter) Then
SendKeys.Send("{TAB}")
e.Handled = True
End If


البته با زبان VB.Net هستش که تبدیلش کاری نداره, با شما
موفق باشید

mahshahr-bayan
دوشنبه 04 مهر 1390, 16:03 عصر
مرسی از راهنماییتون
ممنون میشم اگه کد سی شارپشم بزارید

مرتضی تقدمی
دوشنبه 04 مهر 1390, 16:17 عصر
مرسی از راهنماییتون
ممنون میشم اگه کد سی شارپشم بزارید



if (e.KeyChar == Chr(Keys.Enter))
{
SendKeys.Send("{TAB}");
e.Handled = true;
}


تبدیل کدهای وی بی و سی شارپ به هم :
http://www.developerfusion.com/tools/convert/vb-to-csharp/

موفق باشید

Majid842
شنبه 21 آبان 1390, 00:33 صبح
مرسی از راهنمایی !
ولی من یک مشکل بزرگی خوردم اینکه در پروژم تعداد زیادی textBox دارم اگه بخوام این کار رو بکنم خیلی اشکال ها داره کسی میتونه بگه چطور میشه با یک بار نوشتم کل برنامه دارای این خاصیت بشه ؟
با تشکر !

zarrinnegar
شنبه 21 آبان 1390, 00:39 صبح
یک کلاس بساز از نوع textbox بعد توش این کد رو اضافه کن


protected override void OnKeyDown(KeyEventArgs e)
{
if ((Convert.ToInt32(e.KeyCode) == 13)
SendKeys.Send("{TAB}");
}



بعد کامپایل کن بعدش از این textbox جدید تو برنامه هات استفاده کن دیگه نمیخواد هیچ جا کد بنویسی

pooria_googooli
شنبه 21 آبان 1390, 00:42 صبح
دوست عزیز شما خاصیت multiline تکست باکست را true کردی . به خاطر همین اول یک سطر اضافه مییکنه بعد میره بعدی . multiline را برابر با false قرار بده درست میشه .

faravaghi
شنبه 21 آبان 1390, 01:26 صبح
سلام،
همین تابع دوستمون رو که قبلا گفتن رو توی رویداد KeyUp هر TextBox بذار:
private void NextControlTab(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{tab}");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
فقط میخواد یک بار بنویسی ولی چندبار فراخوانی بشه.

mohammadsavadian
یک شنبه 08 مرداد 1391, 00:14 صبح
شما می تونی در رویداد keypress این کد رو بنویسی و رویداد keypress یقیه TextBox ها رو به این یکی متصل کنی

the king
یک شنبه 08 مرداد 1391, 03:40 صبح
با سلام
دوستان من کدی نوشتم که با زدن اینتر به تکس باکس دیگری برود با تنظیم فوکوس ولی وقتی اینتر را میزنم قبل از رفتن یک سطر خالی در تکس باکس ایجاد میکند بطوری که نمیتوان نوشته خود را داخل تکس باکس دید.ممنون میشم اشتباه کارم را توضیح بدید. یا اگه روش بهتری دارید .
کاری به TextBox ها نداشته باشید، بگذاریدش داخل کلاس فرم :

protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
return base.ProcessDialogKey(Keys.Tab);
}
return base.ProcessDialogKey(keyData);
}

princepersia236
پنج شنبه 02 خرداد 1392, 16:09 عصر
با سلام
ببخشید می تونید سورس کد این برنامه رو به ایمیلم بفرستید(خیلی نیاز دارم)
با تشکر
mohammadmoradi1373.m@gmail.com

princepersia236
پنج شنبه 02 خرداد 1392, 16:12 عصر
با سلام
ببخشید می تونید سورس کد این برنامه رو به ایمیلم بفرستید(خیلی نیاز دارم)
با تشکر
mohammadmoradi1373.m@gmail.com

website.expert
پنج شنبه 07 اسفند 1393, 16:30 عصر
کاری به TextBox ها نداشته باشید، بگذاریدش داخل کلاس فرم :

protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
return base.ProcessDialogKey(Keys.Tab);
}
return base.ProcessDialogKey(keyData);
}

کسی میدونه چطور باید این کد رو تغییر بدم تا فقط برای textbox ها عمل کنه؟

علی فتحی
جمعه 16 مرداد 1394, 12:46 عصر
این روش چرا؟ در کمبو باکس و مسکباکس(تاریخ);کار نمیکنه؟

somitlb
پنج شنبه 04 مهر 1398, 17:30 عصر
text box ها رو order بندی کن و بعد از این تابع استفاده کنید
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
SendKeys.Send("{tab}");
return base.ProcessCmdKey(ref msg, keyData);
}