PDA

View Full Version : سوال: DataGridViewComboBoxCell



mahrokh_1121
شنبه 27 شهریور 1389, 10:17 صبح
سلام
من تو یه DataGridView چند تا Column از نوع ComboBox دارم
و از DB اونها رو bind کردم
مشکل اینجاست که میخوام وقتی کاربر وارد این cell ها میشه ComboBox ها باز بشن
یعنی نیازی به mouse نباشه

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

mahrokh_1121
شنبه 27 شهریور 1389, 15:39 عصر
در واقع دنبال یه خاصیتی تو dataGridView
هستم که مثه خاصیت DroppedDown
تو ComboBox
کار کنه

کارم خیلی فوریه
کمکم کنید

mahrokh_1121
شنبه 27 شهریور 1389, 16:56 عصر
من چقد بد شانسم:D
حداقل بگید چطوری تو رویداد KeyPress
برای یه DataGridView
بگم همون رفتاری رو داشته باشه که وقتی F4 رو میزنه داره
:((

cheshm6k
شنبه 27 شهریور 1389, 19:30 عصر
سلام .

ناامیدی ، اونم به این زودی ؟؟؟؟؟؟؟؟؟؟؟؟

سئوال اول :


private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 1)
{
dataGridView1.BeginEdit(true);
ComboBox comboBox = (ComboBox)dataGridView1.EditingControl;
comboBox.DroppedDown = true;
}
}


سئوال دوم :


private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F4)
MessageBox.Show("F4 Pressed");
}


موفق باشید.

mahrokh_1121
یک شنبه 28 شهریور 1389, 22:35 عصر
الان ساعت 12 شبه و من هنوز سر کارم :(
الان یه مشکل دیگه ایجاد شده

من تو یه دیتا گرید ویو 5 تا ستون دارم که 2تای آخریش از نوع ComboBoxCell هستند و با Enter بین ستون ها میشه حرکت کرد

تا قبل از این میخواستم وقتی وارد این ستون ها میشم ComboBox ها باز بشن
الان با کدی که دوستان بالا ارائه کردن اینکار رو میکنم ولی بعدش وقتی Enter رو میزنم دیگه رویداد KeyDown اجرا نمیشه و بهمین خاطر از ستون آخر میپره
:)
:(

cheshm6k
دوشنبه 29 شهریور 1389, 01:30 صبح
سلام .

رویداد 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);
}


موفق باشید.