PDA

View Full Version : سوال: فراخوانی یک رویداد datagridview در رویداد دیگر



aria2006
سه شنبه 31 شهریور 1394, 19:44 عصر
درود
من یک دیتاگرید ویو دارم که اطلاعات رو از یکی از جداول دیتابیسم میگیره و نشون میده... هر سطر این دیتاگریدویو قراره در صورت انتخاب کاربر بره بشینه توی تکست باکسهای یه فرم دیگه... که قراره کاربر به سه شیوه دلخواه این کارو انجام بده... روش اول با دابل کلیک روی هر سطر این کار انجام میشه... تا اینجا مشکلی نیست... اما کاربر باید بتونه از طریق button و نیز از طریق اینتر کردن روی هر یک از سطرها دیتا گرید این کارو انجام بده.
بار اول اومدم کدی که در رویداد دابل کلیک دیتاگرید بود داخل رویدادهای باتن کلیک و رویداد کی پرس دیتاگرید ویو کپی کردم که از یه قسمت کد (e.RowIndex) ایراد میگرفت... واسه همین تصمیم گرفتم بیام رویداد دابل کلیک دیتاگریدویو رو در اون دو رویداد دیگه صدا بزنم که متاسفانه نتونستم.....
اساتید راهنمایی بفرمایند لطفا
اینک کد مربوط به رویداد دابل کلیک:

private void dataGridView1_CellDoubleClick(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
{
try
{

Application.OpenForms["archive1"].Controls["code_o"].Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
Application.OpenForms["archive1"].Controls["name_o"].Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();

if (dataGridView1.CurrentCell.Selectable)
{
this.Visible = false;
this.Hide();
}
}
catch
{
dataGridView1.Focus();
}
}

aria2006
چهارشنبه 01 مهر 1394, 09:54 صبح
من اومدم به شیوه های مختلف رویداد دابل کلیک دیتاگرید ویو رو در رویداد باتن کلیک و کی پرس فراخوانی کردم ولی هیچ کدوم کاری انجام نمیدادند یا اگه آرگومانهای تابع رو طور دیگه تغییر میدادم خطا می گرفت ...


dataGridView1_CellDoubleClick(this,null);
dataGridView1_CellDoubleClick(null, null);
dataGridView1_CellDoubleClick(sender, null);

:ناراحت::ناراحت::ناراحت::نار حت:

Mahmoud.Afrad
چهارشنبه 01 مهر 1394, 10:59 صبح
به جای dataGridView1.Rows[e.RowIndex] از dataGridView1.CurrentRow استفاده کن. یک متد برای کاری که میخواهی انجام بدی ایجاد و در هر سه رویداد این متد را فراخوانی کن.

aria2006
چهارشنبه 01 مهر 1394, 11:51 صبح
به جای dataGridView1.Rows[e.RowIndex] از dataGridView1.CurrentRow استفاده کن. یک متد برای کاری که میخواهی انجام بدی ایجاد و در هر سه رویداد این متد را فراخوانی کن.

مشکل اینجاست که dataGridView1.CurrentRow متدی بنام value نداره.چون من میخوام مقادیر داخل سطر دیتاگرید رو برگردونم. اگر مثلا میخواستم شماره سلولهای دیتاگرید رو برگردونم فرمایش شما درست بود میتونستم از متد index در ادامه dataGridView1.CurrentRow استفاده کنم..... ولی الان این متد کاربردی برام نداره......:ناراحت::ناراحت:

Mahmoud.Afrad
چهارشنبه 01 مهر 1394, 11:57 صبح
currentrow سطر جاری هست که باید از طریق سلول ها مقادیر رو بخونی.

aria2006
چهارشنبه 01 مهر 1394, 12:09 عصر
currentrow سطر جاری هست که باید از طریق سلول ها مقادیر رو بخونی.

دوست عزیز میشه کاملتر و واضح تر پاسخ بدید؟؟ بنظر شما من در عکس زیر بعد از cells از چه متدی استفاده کنم که مقدار رو برگردونه ؟!!!!
چنین چیزی وجود نداره.
135441

hahaie
چهارشنبه 01 مهر 1394, 12:29 عصر
فکر کنم اینطوری بشه:


datagridview1.currentrow.cells[0].value.tostring();

aria2006
چهارشنبه 01 مهر 1394, 15:20 عصر
فکر کنم اینطوری بشه:


datagridview1.currentrow.cells[0].value.tostring();

ممنون مشکلم حل شد.توی بقیه رویدادهامم این کدو زدم درست شد.:لبخندساده::لبخندساده:
فقط چیزی که برای خودم جالبه و هنوز راه حلشه پیدا نکردم اینه که چطور از رویداد کی پرس دیتاگرید بتونم رویداد دابل کلیکشو فراخونی کنم تا در نوشتن کد صرفه جویی بشه ؟!:متفکر::متفکر:

kamiloted
پنج شنبه 12 آذر 1394, 14:51 عصر
دوست عزیز مشکلتون حل شد.اگه نشد تا راهنماییتون کنم