PDA

View Full Version : دستور click برای datagrid



dele_ghamgin_2008
یک شنبه 04 خرداد 1393, 16:35 عصر
سلام . چگونه می توانم برای دیتا گرید دستور کلیک صادر کنم !؟ منظورم کلیک ماوس هست.

یعنی می خواهم وقتی روی باتن کلیک کردم ، دیتا گرید اون مقداری رو که روی آن روی حالت انتخاب هست رو کلیک کنه.

یعنی ابتدا میام روی دیتا یک مقدار رو انتخاب می کنم . حال میام روی باتن کلیک می کنم . می خواهم دستور کلیک ماوس برای دیتا صادر بشه . آخه توی دستور کلیک ماوس برای دیتا یک سری کدهایی نوشتم . ممنون اگه راهنمایی کنید.

rayson
یک شنبه 04 خرداد 1393, 16:49 عصر
سلام.
در خاصیتRowHeaderMouseClick یا RowHeaderMouseDoubleClick کد خود را پیاده کن ، وقتی ردیف خودت را انتخاب کردی خاصیت ها آدرس ردیف مورد نظر را بگیر و در دکمه کلیک اطلاعاتی که میخوای را که در متغییر یا تکست بریزی بنویس مثل:
textbox1.tex= dgv_persons.Rows[row].Cells[2].Value.ToString();
row یک متغیر از جنس اینتیجر که همان ردیفی است که در خاصیت های فوق آن را بدست آوردی .
موفق باشید.

rezayeman
یک شنبه 04 خرداد 1393, 16:51 عصر
خوب چه کاریه
اون دستوری که توی رویداد کلیک دیتاگرید نوشتیو توی یه تابع بنویس بعد هم توی رویداد مربوط به دکمه و هم تو رویداد کلیک دیتاگرید اونو فراخوانی کن
اگه هم اصرار داری خود کلیک فراخوانی بشه به این صورت بنویس

ِDataGridView1_cellClick(null, null);

dele_ghamgin_2008
یک شنبه 04 خرداد 1393, 18:22 عصر
خوب چه کاریه
اون دستوری که توی رویداد کلیک دیتاگرید نوشتیو توی یه تابع بنویس بعد هم توی رویداد مربوط به دکمه و هم تو رویداد کلیک دیتاگرید اونو فراخوانی کن
اگه هم اصرار داری خود کلیک فراخوانی بشه به این صورت بنویس

ِDataGridView1_cellClick(null, null);

من کدی رو در بخش مربوطه نوشتم :
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) {
// txtDescription.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
txtLink.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); // لینک را نمایش می دهد
}

این دستور زمانی که من توی جدول روی هر ردیف کریک کنم (با ماوس) به درستی کار می کند . حال من نمی خواهم کلیک کنم . می خواهم با جهت نماهای کیبور این کار رو انجام بدم . یعنی روی هر کدوم که بردم . دستور رو برام اجرا کنه . من خودم از دستور زیر استفاده کردم . ولی متاسفانه این دستور ، وقتی جهت نما رو پایین حرکت می دم ، دستور برای عبارت قبلی اجرا میشه و روی اون گزینه که انتخاب شده رو جواب نمیده . باز مجبورم یکبار دیگه جهت بزنم تا برای قبلی رو نشون بده.
private void dataGridView1_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e) {
txtLink.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
}

rayson
یک شنبه 04 خرداد 1393, 18:43 عصر
بجای خط بالا بنویس:
int row = e.Cell.RowIndex ;
TextBox1.Text = DataGridView1.Rows[row].Cells[1].Value.ToString();

dele_ghamgin_2008
دوشنبه 05 خرداد 1393, 17:46 عصر
بجای خط بالا بنویس:
int row = e.Cell.RowIndex ;
TextBox1.Text = DataGridView1.Rows[row].Cells[1].Value.ToString();

مرسی . دقیقاً این کد شما همون کد مد نظر من بود . لذا از شما کمال تشکر را دارم.

alirezagh73
شنبه 31 خرداد 1393, 14:01 عصر
درمثال های بالا فقط یه فیلد ذخیره می شود من میخوام باانتخاب وکلیک برروی دکمه تمام اطلاعات اون ردیف ذخیره بشود
برای پروژه مدیریت دانشگاه وبخش انتخاب واحد میخوام
بالایک دیتاگرید گذاشتم وقتی روکلیک کرد ودرس را انتخاب کرد وروی دکمه ثبت زد اون درس درجدول دروس انتخاب شده اضافه بشه برای اینکاراز چه کدی باید استفاده کنم؟