PDA

View Full Version : سوال: رویداد textchanged برای سلول های datagridview



AmiN0012
شنبه 07 آذر 1394, 15:21 عصر
سلام دوستان دنبال ی رویداد دیتا گرید میگردم که به محض نوشتن ی مقدار در سلولش بصورت دستی، فعال شه.
رویداد cellendedit بعد اینکه از یک سلول وارد سلول دیگه ای شدی عمل میکنه.من میخام در لحظه ای که عوض شد مقدار گریدویو فعال شه.ی چیزی شبیه رویداد textchanged تکست باکس.

محمد رضا فاتحی
شنبه 07 آذر 1394, 16:01 عصر
سلام...خود دیتاگرید بطور پیش فرض نداره ولی میشه شبیه سازی کرد
اول تو رویاد لود فرمت اینو بنویس

this.dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(data GridView1_EditingControlShowing);


اینم تابع مرتبط با این رویداد

void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{

TextBox tb = (TextBox)e.Control;
tb.TextChanged += new EventHandler(tb_TextChanged);

}


اینم تابعی که وقتی مقدار سلول تغییر می کنه

private void tb_TextChanged(object sender, EventArgs e)
{
MessageBox.Show("changed");
}

AmiN0012
شنبه 07 آذر 1394, 16:21 عصر
ممنونم.منظور من از تکست باکس که در اخر سوالک گفتم فقط این بود ی رویدادی میخام از گرید که شبیه رویداد text changed تکستباکس عمل کنه.
در اصل من میخام تغییر در خود سلول گرید انجام شه

محمد رضا فاتحی
شنبه 07 آذر 1394, 16:29 عصر
خوب درسته این تکسباکسی هم که من توی کد براتون نوشتم منظور این نبوده که واقعا تکسباکسه
خود سلول رو به عنوان تکسباکس در نظر میگیره و رویداد تکس چینج رو روی اون اعمال می کنه

AmiN0012
شنبه 07 آذر 1394, 20:09 عصر
دوست عزیز واقعا ممنون.فقط ی سوال دیگه.بعضی از سلول های گرید من کامبوباکس هستن.که از از جدول بانک پر میشوند.من دیگه به اونها دسترسی ندارم.وقتی میخام انتخاب کنم از گرید ارور میگیره روی تابع زیر:
DgvEntryDetails_EditingControlShowing

متن ارور:
Unable to cast object of type 'System.Windows.Forms.DataGridViewComboBoxEditingC ontrol' to type 'System.Windows.Forms.TextBox'.

AmiN0012
سه شنبه 10 آذر 1394, 09:07 صبح
این رویداد گرید مناسبه:
CellBeginEdit