ขอความช่วยเหลือฉุกเฉินครับ C# windows form application คลิกชีที่ row datagridview แล้วไม่โชว์ค่าที่ฟอร์ม
ได้โปรดช่วยผมด้วยนะครับ
Date :
2012-09-07 20:42:25
By :
poompm231
ฉุกเฉินมากครับได้โปรดช่วงเหลือผมด้วยนะครับ
Date :
2012-09-07 22:54:56
By :
poompm231
ได้โปรดช่วยผมหน่อยนะครับ
Date :
2012-09-08 00:47:17
By :
poompm231
ลองเขียนดูก่อนครับ หรือไม่เอา Code ที่มีปัญหามาถามครับ
Date :
2012-09-08 06:56:32
By :
mr.win
ภาพนี้คือ ผมต้องการให้คลิกที่ row แล้วส่งข้อมูลไปยัง form ให้ตรงตามตำแหน่งที่เราได้บันทึกเอาไว้ครับ ตรงการศึกษาใน form ยังผิดอยู่ครับมันต้องให้ตรงกับที่บันทึกเอาไว้
ตอนนี้ผมทำได้เกือบทั้งหมดแล้วครับ เหลือแต่ตรงคลิกที่ row datagridview แล้วส่งค่าไปยัง form คือ อยากให้คลิกที่ row แล้วส่งข้อมูลไปยัง form ให้ตรงตามตำแหน่งที่เราได้บันทึกเอาไว้ครับ (ภาพที่ 1-3 ผมคลิกที่ cell เท่านั้นนะครับ ซึ่งยังไม่ถูกต้องครับ) ผมยังมือใหม่ครับยังไม่รู้อะไรอีกมาก ได้โปรดให้ความช่วยเหลือผมด้วยนะครับ ขอบคุณครับ
source code ตามนี้ครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace tcombo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i;
private void button1_Click(object sender, EventArgs e)
{
string lvc = "";
if (radioButton1.Checked == true)
{
lvc = radioButton1.Text;
}
else if (radioButton2.Checked == true)
{
lvc = radioButton2.Text;
}
else if (radioButton3.Checked == true)
{
lvc = radioButton3.Text;
}
if (textBox1.Text == "" || textBox2.Text == "" || comboBox1.Text == "" || lvc == "")
{
MessageBox.Show("คุณใส่ข้อมูลหรือเลือกข้อมูลไม่ครบถ้วน");
return;
}
int c;
if (int.TryParse(textBox1.Text, out c))
{
MessageBox.Show("กรูณาใส่ชื่อเป็นตัวอักษร", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
textBox1.Clear();
return;
}
int b;
if (!int.TryParse(textBox2.Text, out b))
{
MessageBox.Show("กรูณาใส่อายุเป็นตัวเลข", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
textBox2.Clear();
return;
}
string lv = "";
if (radioButton1.Checked == true)
{
lv = radioButton1.Text;
}
else if (radioButton2.Checked == true)
{
lv = radioButton2.Text;
}
else if (radioButton3.Checked == true)
{
lv = radioButton3.Text;
}
dataGridView1.Rows.Add(comboBox1.Text, textBox1.Text, textBox2.Text, lv);
}
private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0)
{
MessageBox.Show("ท่านยังไม่ได้เลือกแถวที่ต้องการลบ");
return;
}
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
if (!row.IsNewRow)
{
dataGridView1.Rows.Remove(row);
}
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
dataGridView1.ReadOnly = true;
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
i = dataGridView1.SelectedCells[0].RowIndex;
comboBox1.Text = dataGridView1.Rows[i].Cells[0].Value.ToString();
textBox1.Text = dataGridView1.Rows[i].Cells[1].Value.ToString();
textBox2.Text = dataGridView1.Rows[i].Cells[2].Value.ToString();
radioButton1.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
radioButton2.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
radioButton3.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
}
}
}
ประวัติการแก้ไข 2012-09-08 09:23:44
Date :
2012-09-08 09:18:24
By :
poompm231
ช่วยผมด้วยนะครับ ผมมือใหม่จริงๆครับ พึ่งทำเรื่องนี้เป็นครั้งแรก
Date :
2012-09-08 10:20:43
By :
poompm231
ช่วยผมด้วยนะครับ ผมลองทุกวิธีแล้วนะครับก็ยังไม่ได้เลยครับ
Date :
2012-09-08 14:03:59
By :
poompm231
Code (C#)
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
txtEditID.Text = dataGridView1.CurrentRow.Cells["Cus_ID"].Value.ToString();
txtEditAddress.Text = dataGridView1.CurrentRow.Cells["Cus_Address"].Value.ToString();
txtEditName.Text = dataGridView1.CurrentRow.Cells["Cus_Name"].Value.ToString();
txtEditLastname.Text = dataGridView1.CurrentRow.Cells["Cus_Lastname"].Value.ToString();
txtEditTel.Text = dataGridView1.CurrentRow.Cells["Cus_Tel"].Value.ToString();
txtEditEmail.Text = dataGridView1.CurrentRow.Cells["Cus_Email"].Value.ToString();
}
ลองใฃ้โค้ดนี้ดู ผมตอบไปหลายกระทู้และนะ โค้ดนี้ ส่วน คอมโบอะ ลองเปลี่ยนดู ถ้าแบบนี้อาจจะไม่โชว์ (ผมเดา) ถ้าไม่โชว์ก็เปลี่ยนเป็นค่า default ของมันนะ เพราะผมใช้แล้วโชว์
Date :
2012-09-08 15:05:17
By :
peteyothin
ผมลองตามที่คุณ pete เปลี่ยนแล้วนะครับมันไม่ได้ครับ ขอบคุณ คุณ pete นะครับ
Date :
2012-09-08 15:53:35
By :
poompm231
ใคร่ขอความอนุเคราะห์ช่วยผมด้วยเถอะ ฉุกเฉินจริงๆครับ
Date :
2012-09-08 17:53:36
By :
poompm231
ลองใช้ เป็นแบบนี้ก็ได้ครับ
int row = e.RowIndex;
แล้วก็ตั้ง properties ของ datagridview ให้เป็น Mode SelectRow
ส่วนเรื่อง combobox น่ะ ต้องถามก่อนว่า คำนำหน้า fix index หรือเปล่า
ถ้า fix เราก็เขียนไปใน code โดยเช็คเงื่อนไขจาก column 0 แล้วก็เอาไปเทียบได้เลยแล้วตั้งเป็น
combo.selectedIndex = index;
Date :
2012-09-08 21:34:23
By :
mocking1
อ๋อ ผมรู้ละทำไมไม่ได้ ผมลืมไปว่าคุณไม่ได้ติดต่อ ดาต้าเบส T-T โทษทีๆๆ แต่ถ้าใช้ ดาต้าเบส คุณเอาโค้ดผมไปน่ะจะออก แต่ชื่อคอลัมน์ ต้องเป็นชื่อในฐานข้อมูลจิงๆนะ ไม่ใช่ชื่อ Caption ของ girdview
Date :
2012-09-09 00:53:55
By :
peteyothin
ตอนนี้ทำได้เกือบทุกอย่างแล้วครับเหลือแต่ radioButton มันไม่ตรงตำแหน่งเท่านั้นครับ
กรอบสีแดง คือ ตำแหน่งที่ถูกต้อง
Date :
2012-09-09 01:15:51
By :
poompm231
เหลือจุดสุดท้ายแล้วล่ะครับ ให้ radiobutton อยู่ให้ถูกตำแหน่งเท่านั้นครับ ช่วยผมด้วยนะครับ ขอบคุณครับ
นี้เป็น Source Code ล่าสุดครับ เหลือตรงที่ radiobutton ที่มันอย่างไม่ตรงตำแหน่งอย่างเดียวแล้วครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace tcombo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/* int i; */
private void button1_Click(object sender, EventArgs e)
{
string lvc = "";
if (radioButton1.Checked == true)
{
lvc = radioButton1.Text;
}
else if (radioButton2.Checked == true)
{
lvc = radioButton2.Text;
}
else if (radioButton3.Checked == true)
{
lvc = radioButton3.Text;
}
if (textBox1.Text == "" || textBox2.Text == "" || comboBox1.Text == "" || lvc == "")
{
MessageBox.Show("คุณใส่ข้อมูลหรือเลือกข้อมูลไม่ครบถ้วน");
return;
}
int c;
if (int.TryParse(textBox1.Text, out c))
{
MessageBox.Show("กรูณาใส่ชื่อเป็นตัวอักษร", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
textBox1.Clear();
return;
}
int b;
if (!int.TryParse(textBox2.Text, out b))
{
MessageBox.Show("กรูณาใส่อายุเป็นตัวเลข", "คำเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning);
textBox2.Clear();
return;
}
string lv = "";
if (radioButton1.Checked == true)
{
lv = radioButton1.Text;
}
else if (radioButton2.Checked == true)
{
lv = radioButton2.Text;
}
else if (radioButton3.Checked == true)
{
lv = radioButton3.Text;
}
dataGridView1.Rows.Add(comboBox1.Text, textBox1.Text, textBox2.Text, lv);
}
private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0)
{
MessageBox.Show("ท่านยังไม่ได้เลือกแถวที่ต้องการลบ");
return;
}
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
if (!row.IsNewRow)
{
dataGridView1.Rows.Remove(row);
}
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
dataGridView1.ReadOnly = true;
}
/* private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
i = dataGridView1.SelectedCells[0].RowIndex;
comboBox1.Text = dataGridView1.Rows[i].Cells[0].Value.ToString();
textBox1.Text = dataGridView1.Rows[i].Cells[1].Value.ToString();
textBox2.Text = dataGridView1.Rows[i].Cells[2].Value.ToString();
radioButton1.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
radioButton2.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
radioButton3.Text = dataGridView1.Rows[i].Cells[3].Value.ToString();
textBox1.Text = dataGridView1.CurrentRow.Cells["name"].Value.ToString();
textBox2.Text = dataGridView1.CurrentRow.Cells["age"].Value.ToString();
} */
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
comboBox1.Text = dataGridView1.CurrentRow.Cells["Column1"].Value.ToString();
textBox1.Text = dataGridView1.CurrentRow.Cells["Column2"].Value.ToString();
textBox2.Text = dataGridView1.CurrentRow.Cells["Column3"].Value.ToString();
string rbb = "";
if (radioButton1.Checked == true)
{
rbb = radioButton1.Text = dataGridView1.CurrentRow.Cells["Column4"].Value.ToString();
}
else if (radioButton2.Checked == true)
{
radioButton2.Text = dataGridView1.CurrentRow.Cells["Column4"].Value.ToString();
}
else if (radioButton3.Checked == true)
{
radioButton3.Text = dataGridView1.CurrentRow.Cells["Column4"].Value.ToString();
}
//radioButton1.Text = dataGridView1.CurrentRow.Cells["Column4"].Value.ToString();
//radioButton2.Text = dataGridView1.CurrentRow.Cells["Column4"].Value.ToString();
//radioButton3.Text = dataGridView1.CurrentRow.Cells["Column4"].Value.ToString();
}
}
}
Date :
2012-09-09 14:54:17
By :
poompm231
คุณต้องการคลิกที่ row datagridview แล้วให้แสดงค่าตาม row นั้นใช่ไหมครับ
ดังนี้ที่ datagridview1_cellenter ของคุณ ต้องระบุว่า
ผมเขียนเป็น vb นะครับ
Code (VB.NET)
dim a as string = datagridview1.rows(e.rowindex).cells(3).value.tostring 'cell ที่ 3 คือ column แสดงระดับการศึกษา เท่าที่ดูจากหน้าจอคุณนะถ้าไม่ถูกเปลี่ยนได้
'จากนั้นก็ check ค่าจาก text ที่ได้กับ ค่า text บน radiobutton
if radiobutton1.text = a then
radiobutton1.checked = true
radiobutton2.checked = false
radiobutton3.checked = false
else if radiobutton2.text = a then
radiobutton2.checked = true
radiobutton1.checked = false
radiobutton3.checked = false
else if radiobutton3.text = a then
radiobutton3.checked = true
radiobutton1.checked = false
radiobutton2.checked = false
end if
ลองดูนะครับ
Date :
2012-09-13 15:40:12
By :
kittipongs
Load balance : Server 02