PDA

View Full Version : حرفه ای: چطور با کلیک بر روی فلش کوچک رویدادی را فعال کنیم



mahdikoochooloo
یک شنبه 23 مرداد 1390, 02:24 صبح
به نام خدا
سلام
کسی می تونه تو عکس زیر بگه
73772
با کلیک بر روی قسمت سمت راست دیتا گرید که با کلیک بر روی اون تمام سطر انتخاب می شه چطور می شه رویدادی رو فعال کرد که توسط اون بتونم اطلاعات تمام اون سطر رو در چند تا تکست باکس نشون بدم؟
از کد زیر استفاده می کنم اما این کد فقط در صورتی عمل می کنه که روی اطلاعات کلیک کنیم.
if (dataGridView1.Rows[0].Selected == true)
MessageBox.Show("");
یا این :
ConCode.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
با تشکر

aloneman2005
یک شنبه 23 مرداد 1390, 10:19 صبح
if (dataGridView1.SelectedRows.Count <= 0)
return;
MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());

aloneman2005
یک شنبه 23 مرداد 1390, 10:19 صبح
رویداد
SelectionChanged

monirprogram
یک شنبه 23 مرداد 1390, 12:17 عصر
من تو رویداد کلیک گرید کد میزارم. مثل این

i = DataGridView1.CurrentRow.Index
If (i > -1) {
txttitle.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index) .Cells(3).Value
id = DataGridView1.Rows(DataGridView1.CurrentRow.Index) .Cells(2).Value
}

متغیر i شماره سطر رو برمیگردونه. و بعد از هر سطر مقدار هر ستون رو که بخوام داخل cell(شماره) قرارش میدم. البته شماره ستونها زا 0 شروع میشه.
مثلا اینجا تو ستون شماره 2 مقدار id و ستون شماره 3 مقدار عنوان رو خوندم و داخل متغیرهای موردنظر خودم گذاشتم. یا هر کد دیگه ای که دوست داری

k_ce_esf
یک شنبه 23 مرداد 1390, 12:45 عصر
میشه از کدهای زیرم استفاده کرد که در این صورت به نظر من کاربر راحتت تره،چون چه روی فلش کلیک کنه،چه روی هر ستونی از دیتاگرید که مربوط به اون سطره خاصه،مقادیر توی text box ها قرار میگیرن:

private void dgv1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int row_index = e.RowIndex;
txtsurgery_code.Text = dgv1.Rows[row_index].Cells["surgery_code"].Value.ToString();
txtmat_code.Text = dgv1.Rows[row_index].Cells["cod_mat"].Value.ToString();
}

mahdikoochooloo
یک شنبه 23 مرداد 1390, 22:30 عصر
هیچ یک به کارم نیومد
با تشکر

k_ce_esf
یک شنبه 23 مرداد 1390, 22:58 عصر
هیچ یک به کارم نیومد
با تشکر
:متعجب: من دقیقا همین کاری که شما میگید را خودم بارها با استفاده از همین کدها انجام دادم و این کدها را هم دقیقا از یکی از برنامه های خودم کپی کردم،تعجب میکنم که میگین جواب نمیده بهتون!
سوالتونو دقیق تر بگین شاید بتونم کمکی کنم.

abolfathi
سه شنبه 25 مرداد 1390, 23:41 عصر
برنامه پیوست شده ، استفاده از کد را نشان می دهد
73908


private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
textBox1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
textBox2.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
textBox3.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
textBox4.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
}

در حالت کلی بهتر است ویژگی rowHeadersVisible را برای گرید false کرد تا این فلش کوچک نمایش داده نشود و در عوض ویژگی selectionMode با fullRowSelect مقداردهی شود که در اینمثال اینطور شده