PDA

View Full Version : سوال: حفظ محتویات یک دیتا گرید در هنگام بستن فرمی که دیتا گرید در درون آن قرار دارد.



piroozman
شنبه 22 تیر 1387, 23:32 عصر
با سلام و احترام خدمت کلیه دوستان عزیز
مشکلی بنده دارم این است که:
1- چگونه می توان متوجه بشوم که کاربر محتویات دیتا گرید را تغییر داده است؟
2- من کلیدی جهت ذخیره محتویات دیتا گرید ساخته ام. فرض کنیم محتویات سلولی از دیتاگرید را تغییر داده است. اما آنرا ذخیره نکرده است و تصمیم می گیرد فرم محتوی دیتاگرید را ببندد. برای رویداد بسته شدن فرم من یک پنجره دیالوگ به کاربر نمایش می دهم با این سئوال که آیا مایل است که اطلاعات جدید را ذخیره نماید یا خیر؟ خوب من نکته 1 را نمی توانم تست کنم و مشکل وقتی حاد تر می شود که با با اتفاق افتادن رویداد بسته شدن فرم محتویات جدیدی که کاربر وارد کرده است و هنوز آنرا ذخیره ننموده است از داخل دیتا گرید محو می شوند!!
ممنون می شوم که کسی کمکم کنه
- - - - - - - - - - - - - - - - - - - - - - - - - - -
به گور من میا بی دف زیارت که در بزم خدا عمگین نشاید

yasercomeng
یک شنبه 23 تیر 1387, 02:27 صبح
سه تا متغير عمومي تو كلاست تعريف كن و دستورات زير رو تويه event‌مربوط به CellBeginEdit ديتاگريدت بنويس:

BeforeEdit = EditDataGridView.CurrentCell.Value.ToString();
BeforeEditColumn = EditDataGridView.CurrentCell.ColumnIndex;
BeforeEditRow = EditDataGridView.CurrentRow.Index;

بعدش اين كد رو هم تويه Event مربوط به CellEndEdit ديتاگريدت بنويس:

if (MessageBox.Show("آيا ميخواهيد اين سطر ويرايش شود؟", "اخطار", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
{
Connection.Open();
this.YourTableAdapter.Update(this.YourDataSet.Your Table);
Connection.Close();
MessageBox.Show(".اطلاعات با موفقيت ويرايش شد");
}
else
EditDataGridView.Rows[BeforeEditRow].Cells[BeforeEditColumn].Value = BeforeEdit;