ตัวอย่างนี้เป็นตัวอย่างในการเอาข้อมูลจาก DataGridView มาแสดงใน TextBox ในการทำงานนั้นเราจะใช้ Event : CellMouseUp ของ DataGridView
จากตัวอย่างผมจะออกแบบหน้าต่างดังนี้
TextBox ตัวแรก จะให้แสดง ข้อมูลจาก Cell Username โดยตั้งชื่อว่า txtUsername
TextBox ตัวที่สอง จะให้แสดง ข้อมูลจาก Cell Password โดยตั้งชื่อว่า txtPassword
dataGridview จะตั้งชื่อว่า gvShow
จากนั้นให้ทำการกำหนด Event ให้กับ dataGridView ในตัวอย่างนี้ผมใช้ชื่อว่า gvShow
คลิ๊กที่ dataGridView แล้วดูตรง Properties จากนั้นกด รูปฟ้าผ่า เลื่อนหาคำว่า CellMouseUp
เมื่อเห็น CellMouseUp แล้วให้คลิกช่องข้าง ๆ CellMouseUp แล้วกด Enter
เมื่อทำการกด Enter แล้ว จะได้ดังภาพด้านล่าง แล้วก็เขียนโค้ดลงในส่วนนี้
วิธีการดึงค่าออกมา
(ชื่อของ dataGridView).Rows[row index].Cells[cell index].Value.ToString();
เมื่อเรานำมาใช้งานจะได้ดังนี้
private void gvShow_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { txtUsername.Text = gvShow.Rows[e.RowIndex].Cells["Username"].Value.ToString(); txtPassword.Text = gvShow.Rows[e.RowIndex].Cells["Password"].Value.ToString(); }
เพียงเท่านี้เราก็จะสามารถเลือกข้อมูลจาก Data Gridview ไปแสดงบน TextBox ได้แล้ว
ตัวอย่างโค้ดในหน้านี้
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 ReadValueInDataGridView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //เรียกใช้ fucntion initGridview(); } /* * เหตุการณ์เมื่อคลิกเลือกข้อมูลใน dataGridView */ private void gvShow_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { txtUsername.Text = gvShow.Rows[e.RowIndex].Cells["Username"].Value.ToString(); txtPassword.Text = gvShow.Rows[e.RowIndex].Cells["Password"].Value.ToString(); } /* * function เพื่อแสดงข้อมูลใน dataGridView */ private void initGridview() { string[] username = { "administrator", "dekdev" }; string[] password = { "123456", "98765" }; DataTable dt = new DataTable(); dt.Columns.Add("Username"); dt.Columns.Add("Password"); for (int i = 0; i < username.Count(); i++) { dt.Rows.Add(); dt.Rows[i]["Username"] = username[i].ToString(); dt.Rows[i]["Password"] = password[i].ToString(); } gvShow.DataSource = dt; } } }