เข้ามาอ่านดูแล้วน่าสนใจครับ ผมเลยลองเกาะ CODE ดูเล่นๆ ลองดูนะครับ ว่าใช้ได้ไหม อาจพอจะเป็นแนวได้บ้างครับ ผิดพลาดประการใดติชมได้นะครับ
เริ่มกันเลยนะครับ
Button btnSelector = new Button(); //สร้าง Buttnon
int pCase; //สำหรับ เก็บส่วนของการเลือก Column
//สร้าง Style ของ Button
private void CreateSeletor()
{
btnSelector.FlatStyle = FlatStyle.Flat;
btnSelector.FlatAppearance.BorderSize = 0;
btnSelector.Size = new Size(19, 19);
btnSelector.ImageAlign = ContentAlignment.MiddleCenter;
btnSelector.FlatAppearance.MouseDownBackColor = Color.Transparent;
btnSelector.FlatAppearance.MouseOverBackColor = Color.Transparent;
btnSelector.BackColor = Color.Transparent;
btnSelector.Image = DataGridviewbutton.Properties.Resources.search; //กำหนดรูป
dataGridView1.Controls.Add(btnSelector); //เพิ่ม Button เข้าไปใน Grid
btnSelector.Hide();
btnSelector.Click += this.SelectorClick; //กำหนด Event เมื่อคลิก Button
}
Eevent เมื่อกด Button
private void SelectorClick(object sender, EventArgs e)
{
pCase = dataGridView1.CurrentCell.ColumnIndex; //กำหนดค่าของ Colum ที่ต้องการแสดง หน้าต่างค้นหา
int pRowFind = dataGridView1.CurrentRow.Index;
switch (pCase)
{
case 1:
Finder_Record(pRowFind);
break;
}
}
แสดง Button เมื่อกดที่ Column ที่ต้องการ
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
//แสดง Button ที่ Column ไหน
if (e.ColumnIndex == 1)
{
var Loc = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);
var Wid = dataGridView1.CurrentCell.Size.Width;
btnSelector.Location = new Point(Loc.X - 20 + Wid, Loc.Y);
btnSelector.Show();
}
}
ซ่อน Button เมื่อไม่ได้อยู่ Column นั้นแล้ว
private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
if(btnSelector.Focused != true)
{
btnSelector.Hide();
}
}
ทั้งหมดนี้จะเป้นส่วนของการแสดง Button ใน DataGridViewTextBoxColumn ส่วนเรื่องหน้าต่างค้นหา น่าจะทำกันได้นะครับ
ผิดพลาดประการใด ชี้แนะได้ครับ
No comments:
Post a Comment