معادل ایونت TextChanged برای سلولهای گرید
سلام
معادل ایونت TextChanged تکست باکس برای سلولهای گرید چیست ؟
مرسی:لبخندساده:
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
از ایونت CellBeginEdit دیتاگرید استفاده کن
و از طریق کد زیر به سلول تغییر یافته برس
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
نقل قول:
نوشته شده توسط
hsmfaridmehr
از ایونت
CellBeginEdit دیتاگرید استفاده کن
و از طریق کد زیر به سلول تغییر یافته برس
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]
این ایونت رو امتحان کرده بودم ولی مشکش اینه که متن درون سلول را با هر بار اجرا نمیشه ازش گرفت .
لطفا راهنمایی بفرمایید .
مرسی
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
نقل قول:
نوشته شده توسط
hsmfaridmehr
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
اینو هم قبلا امتحان رده بودم . مقدار درون سلول رو فقط زمانی میشه گرفت که سلول EndEdit بشود. ولی هنگام نوشتن در سلول مقدار رو نمیده.
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
تو beginedit هی endedit کن.
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
خوب چون datagrid شما bind شده به ی جدول درسته؟
و چون اون cell هم به همون cell در جدول اصلی bind شده مقداری رو بر میگردونه که در جدول ذخیره شده.
حالا واسه چی می خوای اون رو؟
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
نقل قول:
نوشته شده توسط
hsmfaridmehr
خوب چون datagrid شما bind شده به ی جدول درسته؟
و چون اون cell هم به همون cell در جدول اصلی bind شده مقداری رو بر میگردونه که در جدول ذخیره شده.
حالا واسه چی می خوای اون رو؟
برای هر دو حالت بایند و غیر بایند تست کردم مثل هم هست .
من می خام برای هر مقدار جدید که وارد می شه یه کوئری اجرا بشه که پارامتر اون کوئری هم مقدار درون سلول هست. دارم واسه یکی از ستونهای گرید یه چیزی شبیه AutoComplete می سازم .
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
از ایونت CellValueChanged استفاده کن
private void dataGridView1_CellValueChanged_1(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
textBox1.Text = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
}
}
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
سلام دوست من
اگه دقیقا میخوای ایونت TextChanged رو داشته باشی، در واقع باید به کنترلی که وظیفه ادیت کردن سلول ها رو داره دسترسی پیدا کنی و کدهات رو در ایونت TextChanged اون بنویسی !!
کدت میتونه یه چیزی شبیه به این باشه :
private bool HandlerAdded = false;
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (HandlerAdded == false)
{
e.Control.TextChanged += ECTextChanged;
HandlerAdded = true;
}
}
private void ECTextChanged(object sender, EventArgs e)
{
MessageBox.Show(((Control )sender ).Text );
}
یا علی
نقل قول: معادل ایونت TextChanged برای سلولهای گرید
نقل قول:
نوشته شده توسط
mostafaaa
سلام دوست من
اگه دقیقا میخوای ایونت TextChanged رو داشته باشی، در واقع باید به کنترلی که وظیفه ادیت کردن سلول ها رو داره دسترسی پیدا کنی و کدهات رو در ایونت TextChanged اون بنویسی !!
کدت میتونه یه چیزی شبیه به این باشه :
private bool HandlerAdded = false;
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (HandlerAdded == false)
{
e.Control.TextChanged += ECTextChanged;
HandlerAdded = true;
}
}
private void ECTextChanged(object sender, EventArgs e)
{
MessageBox.Show(((Control )sender ).Text );
}
یا علی
بسیار ممنون . جواب همین است .
لطفا در مورد HandlerAdded توضیح بیشتر بدید . کلا در مورد کل کد .
مرسی:لبخندساده: