PDA

View Full Version : اجرای کد با فشردن دکمه tab درtextbox



yekta64
پنج شنبه 25 مهر 1392, 22:17 عصر
سلام دوستان
من یه تکس باکس دارم که میخام زمانی که کاربر متنی رو درش نوشت و دکمه tab رو زد ضمن رفتن به تکس دوم متن تکس دوم انتخاب بشه مشکل من در اینه که من در رویداد key_press تکس باکس کد زیر رو مینویسم




if (e.KeyChar == Convert.ToChar(Keys.Tab))
{
دستورات;
}


ولی اصلا اجرا نمیشه یعنی هرچی توی تکس اول tab رو میزنم به تکس دو میره اما دستوری که براش توی key_press نوشتم رو نمیفهمه علت چیه؟؟

drsina
پنج شنبه 25 مهر 1392, 22:31 عصر
اول و قبل از اینکه به تکست باکس بعدی بری ، یه sendkey بفرست .

System.Windows.Forms.SendKeys.SendWait("^a");


و سپس فوکس رو به بعدی ببر .

yekta64
پنج شنبه 25 مهر 1392, 22:34 عصر
میتونید بگید مشکل کد من چی هستش؟

yekta64
پنج شنبه 25 مهر 1392, 22:35 عصر
اول و قبل از اینکه به تکست باکس بعدی بری ، یه sendkey بفرست .

System.Windows.Forms.SendKeys.SendWait("^a");


و سپس فوکس رو به بعدی ببر .

sendkey چیکار میکنه و کجای برنامه باید بنویسم؟؟

drsina
پنج شنبه 25 مهر 1392, 22:47 عصر
Sendkey برای ارسال ، حروف کیبورد ه .

حالا یه سوال ، منظورت دقیقان از انتخاب شدن چیه ؟!
میخوای رنگ متنت عوض بشه یا Ctrl + a رو انجام بدی ؟

yekta64
پنج شنبه 25 مهر 1392, 22:55 عصر
Sendkey برای ارسال ، حروف کیبورد ه .

حالا یه سوال ، منظورت دقیقان از انتخاب شدن چیه ؟!
میخوای رنگ متنت عوض بشه یا Ctrl + a رو انجام بدی ؟

میخام متن به حالت انتخاب دربیاد یعنی به کادر ابی روی متن قرار بگیره مثل همون ctrl+ a

yekta64
پنج شنبه 25 مهر 1392, 23:00 عصر
میخام متن به حالت انتخاب دربیاد یعنی به کادر ابی روی متن قرار بگیره مثل همون ctrl+ a
مشکل من با انتخاب متن کادر دو نیست اون رو با SELECTALL دزست میشه مشکلروی اینه که میخام با زدنTAB این کار انتخاب بشه و شرط فشرده شدن تب عمل نمیکنه

drsina
پنج شنبه 25 مهر 1392, 23:02 عصر
خب ، اینکه نمیشه !!! تو اگه یه جا رو توو ویندوز Select all بکنی ، بعد روی یه جای دیگه کلیک کنی ، که Select اون برداشته میشه !!!!

yekta64
پنج شنبه 25 مهر 1392, 23:04 عصر
خب ، اینکه نمیشه !!! تو اگه یه جا رو توو ویندوز Select all بکنی ، بعد روی یه جای دیگه کلیک کنی ، که Select اون برداشته میشه !!!!

شما اصلا کاری به انتخاب متن کادر دوم نداشته باش اصلا فرض کن میخام شرط بزارم اگه روی تکس اول دکمه TAB فشرده شد یه پیغام چاپ بشه چطور اینکارو میشه انجام داد؟؟؟

drsina
پنج شنبه 25 مهر 1392, 23:14 عصر
کدد که درسته ، ولی کار نمیده چون بعد از باید Tab Index رو به بعدی ببری !

ولی کاری رو که میخوا بکنی توو رویداد Leave بزار ، یعنی هر وقت ، چه با فشردن Tab و چه رفت به تکست باکس بعد ، کارت انجام میشه.

mhsmity
جمعه 26 مهر 1392, 01:56 صبح
شما کد های خودتون رو در چه رویدادی مینویسید؟
private void TxtDateDel_KeyDown(object sender, KeyEventArgs e)

yekta64
شنبه 27 مهر 1392, 19:14 عصر
شما کد های خودتون رو در چه رویدادی مینویسید؟
private void TxtDateDel_KeyDown(object sender, KeyEventArgs e)

من هم در رویداد keysdown نوشتم هم keypress در هر دو جواب نمیده

mhsmity
شنبه 27 مهر 1392, 23:29 عصر
من هم در رویداد keysdown نوشتم هم keypress در هر دو جواب نمیده

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Form2 f = new Form2();

if (e.KeyCode == Keys.F3)
f.ShowDialog();
}
-----------------------------------------------------
private void Form1_Load(object sender, EventArgs e)
{
textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MySmity_ KeyDown);
}
private void MySmity_KeyDown(object sender, KeyEventArgs e)
{
if (Keys.F == e.KeyCode)
{
if (e.Alt && e.Control && e.Shift)
{
MessageBox.Show("Ctrl + Alt + Shift + f");
// Do job for Ctrl + Alt + Shift + f
}
}
if (Keys.A == e.KeyCode)
{
if (!e.Alt && e.Control && e.Shift)
{
MessageBox.Show("Ctrl + Shift + a");
// Do job for Ctrl + Shift + a
}
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F3)
{
MessageBox.Show("F3");
}
}

kiumarsknb
یک شنبه 28 مهر 1392, 00:27 صبح
با سلام
1- خاصیت keyPreview رو در فرم موردنظر فعال کنید
2- به قسمت کد فرم برین و کد زیر رو وارد کنید

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{

if ((keyData == Keys.Tab) && (textBox2.Focused))
{
MessageBox.Show("Test");
}
return base.ProcessCmdKey(ref msg, keyData);
}