PDA

View Full Version : کلیک کردن روی دکمه Button با Enter و Space کیبورد



miillad
یک شنبه 02 اسفند 1394, 01:38 صبح
درود دوستان چطوری میتونم دکمه Button که برای فرم گذاشتم رو توسط دکمه های enter و space کیبورد فرمان پذیر کنم؟

golestan1
یک شنبه 02 اسفند 1394, 01:48 صبح
Tabindex دکمه رو صفر قرار بده البته دیگر کنترل ها نیز نباید صفر باشند این برای فوکوس است

AmiN0012
یک شنبه 02 اسفند 1394, 02:15 صبح
سلام

private void Frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
Button1_Click(null, null);
}

miillad
یک شنبه 02 اسفند 1394, 04:31 صبح
Tabindex دکمه رو صفر قرار بده البته دیگر کنترل ها نیز نباید صفر باشند این برای فوکوس است
با تشکر از شما.
مقدار پیش فرضش 61 بود.0 کردم.ولی به محض اجرای برنامه عمل میکرد.بدون اینکه من دکمه ای بزنم.و وقتی کلیک میکردم داخل تکست باکس واسه دادن ورودی،باز button خاموش میشد.
یعنی وقتی ابتدا، برنامه اجرا میشه دکمه button اتومات عمل میکنه.و چون همچنان روشن هست با زدن دکمه اینتر و اسپیس هم عمل میکنه منتها تا قبل اینکه بخوای داخل تکست باکس چیزی بنویسی.
برنامه من 3 تا ورودی میگیره از کاربر و بعد با زدن دکمه button یه سری محاسبات میکنه و در 7 خروجی تحویل میده.
باید اینجوری باشه که تا زمانی که 3 تا تکست باکس ورودی نگرفته دکمه button خاموش بمونه.

AmiN0012
یک شنبه 02 اسفند 1394, 05:39 صبح
تو رویداد TextChanged هر سه تکست باکس بگو اگر هرسه تکست باکس تکستشون مخالف null بود دکمه باتن فعال شه.میتونی تو رویداد leave هم همینو بگی

miillad
یک شنبه 02 اسفند 1394, 07:56 صبح
تو رویداد TextChanged هر سه تکست باکس بگو اگر هرسه تکست باکس تکستشون مخالف null بود دکمه باتن فعال شه.میتونی تو رویداد leave هم همینو بگی
مرسی داداش
من این دستور رو در تکس چنج تکست باکس گزاشتم ولی کلید بوتون اصلا فوکوس نمیشه که بشه اینترش کرد.
if (e.KeyCode == Keys.Enter)
button1_Click(null, null);
}

miillad
چهارشنبه 05 اسفند 1394, 10:16 صبح
داداش من همین دستور رو تو leave تکست باکس هم گذاشتم ولی فرقی نکرد

csharpcollegian
چهارشنبه 05 اسفند 1394, 10:57 صبح
مرسی داداش
من این دستور رو در تکس چنج تکست باکس گزاشتم ولی کلید بوتون اصلا فوکوس نمیشه که بشه اینترش کرد.
if (e.KeyCode == Keys.Enter)
button1_Click(null, null);
}

این دستور Button رو فوکوس نمی کنه که، دستورات داخلش رو اتوماتیک اجرا می کنه که همون کاری که شما می خوای رو بدون زحمت کلیک کردن انجام میده
ولی اگه میخوای فوکوس کنه یه خورده تغییرش بده :

private void Frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
Button1.Focus();
}

ژیار رحیمی
چهارشنبه 05 اسفند 1394, 10:58 صبح
public partial class Form2 : Form
{

public Form2()
{
InitializeComponent();
foreach (var tb in Controls.OfType<TextBox>())
tb.TextChanged += textBox_TextChanged;
}
void textBox_TextChanged(object sender, EventArgs e)
{
button1.Enabled = !(string.IsNullOrEmpty(textBox1.Text.Trim())
|| string.IsNullOrEmpty(textBox2.Text.Trim())
|| string.IsNullOrEmpty(textBox3.Text.Trim()));
}


private void Form2_Load(object sender, EventArgs e)
{
button1.Enabled = false;
KeyPreview = true;
}


private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Button is clicked");
}


private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter) return;
if (button1.Enabled)
button1_Click(null, null);
}
}

rahmatipoor
چهارشنبه 05 اسفند 1394, 16:57 عصر
سلام

private void Frm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
Button1_Click(null, null);
}


بهترین راه رو ایشون بهتون گفتند دیگه