PDA

View Full Version : مشکل در کلید enter در کمبوباکس



misagh.sys
یک شنبه 25 اسفند 1398, 09:45 صبح
سلام
وقت همگی بخیر
من از کدهای زیر برای فوکوس بین کنترل های از کلید Enter استفاده میکنم اما روی کنترل کمبوباکس مشکل دارمو کار نمیکنه
لطف میکنید راهنمایی بفرمایید

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Enter))
{
SendKeys.Send("{TAB}");
}

return base.ProcessCmdKey(ref msg, keyData);
}





private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
SendKeys.Send("{tab}");
}
}

the king
یک شنبه 25 اسفند 1398, 12:43 عصر
سلام
وقت همگی بخیر
من از کدهای زیر برای فوکوس بین کنترل های از کلید Enter استفاده میکنم اما روی کنترل کمبوباکس مشکل دارمو کار نمیکنه
لطف میکنید راهنمایی بفرمایید

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Enter))
{
SendKeys.Send("{TAB}");
}

return base.ProcessCmdKey(ref msg, keyData);
}





private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
SendKeys.Send("{tab}");
}
}
می بینید اون ProcessDialogKey یک مقدار بازگشتی bool داره؟ اگه مقدار false برگردونده باشه که base.ProcessDialogKey اینکار رو میکنه به این معنی است که با اون کلید کار خاصی ندارم و کنترل های دیگه بهش رسیدگی کنند. در حالی که شما برای Enter باید true رو برگردونید. با comboBox1.KeyDown کاری نداشته باشید و کدش رو حذف کنید.


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

misagh.sys
یک شنبه 25 اسفند 1398, 20:43 عصر
دمت گرم مهندس
اما روی کمبوباکس بازم جواب نمیده
.

ShayanFiroozi
یک شنبه 25 اسفند 1398, 22:48 عصر
دمت گرم مهندس
اما روی کمبوباکس بازم جواب نمیده
.

سلام ، بنده تست کردم به راحتی جوب داد ،

شاید تابع با Event کومبو باکست رفرنس نشده یا رفرنسشو از دست داده ، ضمنا خصوصیت KeyPreview فرمتو true کن ببین چی میشه