سلام
من تو یه DataGridView چند تا Column از نوع ComboBox دارم
و از DB اونها رو bind کردم
مشکل اینجاست که میخوام وقتی کاربر وارد این cell ها میشه ComboBox ها باز بشن
یعنی نیازی به mouse نباشه
کسی میدونه چیکار باید بکنم؟
سلام
من تو یه DataGridView چند تا Column از نوع ComboBox دارم
و از DB اونها رو bind کردم
مشکل اینجاست که میخوام وقتی کاربر وارد این cell ها میشه ComboBox ها باز بشن
یعنی نیازی به mouse نباشه
کسی میدونه چیکار باید بکنم؟
در واقع دنبال یه خاصیتی تو dataGridView
هستم که مثه خاصیت DroppedDown
تو ComboBox
کار کنه
کارم خیلی فوریه
کمکم کنید
من چقد بد شانسم:D
حداقل بگید چطوری تو رویداد KeyPress
برای یه DataGridView
بگم همون رفتاری رو داشته باشه که وقتی F4 رو میزنه داره
:((
سلام .
ناامیدی ، اونم به این زودی ؟؟؟؟؟؟؟؟؟؟؟؟
سئوال اول :
privatevoid dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 1)
{
dataGridView1.BeginEdit(true);
ComboBox comboBox = (ComboBox)dataGridView1.EditingControl;
comboBox.DroppedDown = true;
}
}
سئوال دوم :
privatevoid dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F4)
MessageBox.Show("F4 Pressed");
}
موفق باشید.
الان ساعت 12 شبه و من هنوز سر کارم :(
الان یه مشکل دیگه ایجاد شده
من تو یه دیتا گرید ویو 5 تا ستون دارم که 2تای آخریش از نوع ComboBoxCell هستند و با Enter بین ستون ها میشه حرکت کرد
تا قبل از این میخواستم وقتی وارد این ستون ها میشم ComboBox ها باز بشن
الان با کدی که دوستان بالا ارائه کردن اینکار رو میکنم ولی بعدش وقتی Enter رو میزنم دیگه رویداد KeyDown اجرا نمیشه و بهمین خاطر از ستون آخر میپره
:)
:(
سلام .
رویداد keyDown رو حذف و این کد رو جایگزین کنید:
protectedoverridebool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if (msg.WParam.ToInt32() == (int)Keys.Enter)
{
SendKeys.Send("{Tab}");
returntrue;
}
elseif (msg.WParam.ToInt32() == (int)Keys.F4)
{
MessageBox.Show("f4 pressed");
returntrue;
}
returnbase.ProcessCmdKey(ref msg, keyData);
}
موفق باشید.