PDA

View Full Version : سوال: دسترسی به سلول ComboBox درون datagridview



AmiN0012
چهارشنبه 05 اسفند 1394, 07:38 صبح
سلام دوستان.من میخام به سلول کامبوباکسم در دیتاگرید دسترسی داشته باشم.اما هرچی مینوسم برنامه تشخیص نمیده این کامبو باکسه.
من میخام وقتی کاربر متنی درون کامبوباکس گرید نوشته کشوی باز شده بسته بشه.برای همین این کد زیرو نوشتم.اما خطا داره

private void DgvEntryDetails_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
if (DgvEntryDetails.Rows[DgvEntryDetails.CurrentCell.RowIndex].Cells["Column_De_Kala"].Selected == true)
{
MessageBox.Show("شما قادر به ویرایش نام کالا نیستید", "اخطار ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);


DataGridViewComboBoxCell cb = (DataGridViewComboBoxCell)DgvEntryDetails.Rows[DgvEntryDetails.CurrentCell.RowIndex].Cells["Column_De_Kala"];
cb.DroppedDown = true;
}
}

khokhan
چهارشنبه 05 اسفند 1394, 17:14 عصر
دوستان ممنون میشم کمکم کنید

معمولا اگه بخواهید کمبوباکس غیر قابل ویرایش بشه بایستی خاصیت DropDownStyle روی DropDownList ست بشه
اما چون این پراپرتی به طور مستقیم در ستون کمبوباکس دیتاگرید قابل دسترسی نیست پس بایستی از طریق کد نویسی ود رویداد EditingControlShowing اعمال بشه یه چیزی مثل این :


private void datagridview_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{

ComboBox c = e.Control;

if (c != null)
{

c.DropDownStyle = ComboBoxStyle.DropDownList;

}

}

AmiN0012
شنبه 08 اسفند 1394, 03:51 صبح
دوست عزیز من تو فرمم دوتا گرید دارم.وقتی کامبوگرید باز شد در گرید اول،ی اخطار میده بعدش میندازتش تو گرید دومیه.اما بعد اینکه میندازتش تو گروه دومیه،کشوی کامبو گرید اولیه باز میشه و تو گرید دومی نشون داده میشه.من میخام بعد پیغام ارور اگر باز شد کشویه کامبو،بسته شه.
139304