PDA

View Full Version : رویداد خروج از سلول های دیتاگرید ویو



sm_1366
دوشنبه 08 اردیبهشت 1393, 08:14 صبح
سلام دوستان!!
دیتاگرید ویویی دارم که دو تا ستونهاش بدهکار و بستانکار هستند
من میخوام هر مقداری به این ستون در سطرهای مختلف جدول اضافه شد با مقادیر قبلی ستون جمع بشه

دستورات جمع بستن رو تو رویداد leave مربوط به textbox اون سلول نوشتم اما وقتی با کلید تب خارج میشی عمل میکنه موس رو نمیشناسه
میشه راهنماییم کنید

hamid_hr
دوشنبه 08 اردیبهشت 1393, 10:17 صبح
هم رویداد cellleave میتونه بدرد شما بخوره هم رویداد cellendedit

sm_1366
دوشنبه 08 اردیبهشت 1393, 12:32 عصر
هم رویداد cellleave میتونه بدرد شما بخوره هم رویداد cellendedit

سلام دوست عزیز
هر دو رو امتحان کردم cellendedit که اصلا با ماوس کار نکرد در کل trace کردم اصلا اجرا نشد
و cellleave هم محتوای سلول دیتاگریدویوی منو null خوند مثلا توش عدد 300 بود اونو null میخوند!!!!!

hamid_hr
دوشنبه 08 اردیبهشت 1393, 14:01 عصر
میشه کدایی که مینویسین بزارین؟

sm_1366
سه شنبه 09 اردیبهشت 1393, 11:55 صبح
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
DataGridViewSelectedCellCollection ddc = dataGridView1.SelectedCells;
int x = ddc[0].ColumnIndex;
int y = ddc[0].RowIndex;
if (x == 6)
{
txtbede.Text =((int.Parse(dataGridView1.Rows[y].Cells[x].Value.ToString()))+100).ToString()}
}




این دستورات وقتی با کلید tab خارج میشم درست عمل میکنه اما وقتی با ماوس خارج میشم فقط 100 میزنه توی txt1 یعنی مقدار سلول رو 0 میخونه بعدش با 100 جمع میکنه
همین دستورات رو توی cellendedit هم نوشتم همین اتفاق افتاد وقتی با کلید tab خارج میشم عمل میکنه با ماوس نه




من برای خانه های گریدویو رویداد leave جداگانه هم تعریف کردم اما باز هم فقط با کلید tab کارکرد
خواهشا اگه کسی راهیی بلده کمک کنه من گیر کردم

hamid_hr
سه شنبه 09 اردیبهشت 1393, 12:12 عصر
x , y رو با e.ColumnIndexو e.RowIndex بگیرین

sm_1366
سه شنبه 09 اردیبهشت 1393, 12:29 عصر
x , y رو با e.ColumnIndexو e.RowIndex بگیرین


دست شما درد نکنه برا همشون جواب داد الا این کمبوباکسیه
همچنان null میخوندش
یکی از خونه های دیتاگریدویو کمبوباکسیه که خاصیت Dropdownstyle رو برابر Dropdown گذاشتم که بشه توش چیزایی نوشت میخوام وقتی از این خونه خارج شدیم هر چیر توش نوشتم رو به عنوان آیتم بهش اضافه کنه
اینم کدشه


(dataGridView1.Rows[y].Cells[x] as DataGridViewComboBoxCell).Items.Add((dataGridView1 .Rows[y].Cells[x].Value.ToString()));

hamid_hr
سه شنبه 09 اردیبهشت 1393, 12:34 عصر
قبل از اینکه اضافه کنه خطا نمیده؟

sm_1366
سه شنبه 09 اردیبهشت 1393, 12:42 عصر
نه من کد رو اینطوری نوشتم درست شد و آیتم aaaaa رو بهش اضافه کرد اما text خودش رو که میگم اضافه کنه خطای null میده

(dataGridView1.Rows[y].Cells[x] as DataGridViewComboBoxCell).Items.Add(("aaaa"()));

sm_1366
سه شنبه 09 اردیبهشت 1393, 12:48 عصر
راستی یه چیز دیگه
من وقتی ستونها رو پر اعداد میکنم وقتی خارج میشم دونه دونه جمع میکنه مشکلی نیست
حالا من مثلا آخرین ستون رو عددشو وارد کردم حالا حتما باید خارج شم از اون خونه تا بتونه این عدد رو هم جمع ببزنه
به نظر شما راهی هست که در حین اجرای برنامه و در حین وارد کردن اعدداد اونارو جمع بزنه و بهم نشون بده
من همین کارو تو رویداد cellendedit نوشتم و برای جمع هر خونه خارج که میشم این اتفاق می افته حالا اگه از آخرین خونه بعده وارد کردن عدد بخوام خارج نشم جمع نمیکنه
چیکارش کنم اونو؟