PDA

View Full Version : سوال: قرار گرفتن مقادیر در تکس باکس با double click روی datagrid



gelayor14
سه شنبه 11 شهریور 1393, 12:39 عصر
سلام ،می خوام کاربر با دبل کلیک روی گرید ویو اطلاعات رو روی تکس باکس ها ببینه و بعد ویرایش کنه ...کدی که نوشتم کار می کنه ولی مقدار سوم رو خطا میده چون نوع اش عددی است


private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows.Count > 0)
{


txt_fname.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[1].Value.ToString();
txt_lname.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[2].Value.ToString();
txt_code_personeli.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[3].Value.ToString();
}
}
کد آخر رو باید چجوری تغییر بدم؟ که نوع عددی داخل گرید ویو بره داخل تکس باکس مربوطش قرار بگیره؟

pmm1024@gmail.com
سه شنبه 11 شهریور 1393, 12:41 عصر
با سلام
خطایی که می دهد را ذکر کنید.

gelayor14
شنبه 15 شهریور 1393, 18:37 عصر
123139
خطاش اینه

forodo
شنبه 15 شهریور 1393, 19:42 عصر
سلام
به احتمال زیاد شما 3 ستون دارید که شماره هاش می شه 0 و 1 و 2 که یعنی شما صفر ندارید.
از همه اعداد cells یکی کم کنید.

Yanehsar
شنبه 15 شهریور 1393, 19:58 عصر
سلام ،می خوام کاربر با دبل کلیک روی گرید ویو اطلاعات رو روی تکس باکس ها ببینه و بعد ویرایش کنه ...کدی که نوشتم کار می کنه ولی مقدار سوم رو خطا میده چون نوع اش عددی است


private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows.Count > 0)
{


txt_fname.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[1].Value.ToString();
txt_lname.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[2].Value.ToString();
txt_code_personeli.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[3].Value.ToString();
}
}
کد آخر رو باید چجوری تغییر بدم؟ که نوع عددی داخل گرید ویو بره داخل تکس باکس مربوطش قرار بگیره؟

سلام از این کد استفاده کنید


try
{
if (dgv.CurrentRow.Cells[dgv.CurrentCell.ColumnIndex].Value != null)
{
//اسامی که در زیر امده همون اسامی فیلدهای شما در دیتابیس هستش که می تونی از
//0و1و2 و.. استفاده کنید اما استفاده از اسم فیلد ها بهتون بیشتر کمک می کنه و خواناتر میشه براتون .
id = Convert.ToInt32(dgv.CurrentRow.Cells["ID"].Value.ToString());
cbStandard.Text = dgv.CurrentRow.Cells["Name"].Value.ToString();
DateStart.Text = dgv.CurrentRow.Cells["Date_Start"].Value.ToString();
DateEnd.Text = dgv.CurrentRow.Cells["Date_End"].Value.ToString();
TimeStart.Text = dgv.CurrentRow.Cells["Time_Start"].Value.ToString();
TimeEnd.Text = dgv.CurrentRow.Cells["Time_End"].Value.ToString();

}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

gelayor14
یک شنبه 16 شهریور 1393, 11:10 صبح
سپاسگذارم ،مشکلم حل شد