วิธีการเปลี่ยนสีปุ่มในแต่ละช่องของ datagridview เวลาคลิกแล้วก้อเปลี่ยนสีและส่งค่าไปอีกฟอร์มใน c# winpp ค่ะ
แฮนเดิลอีเว็นต์ cellclick แล้วอยากจะทำอะไรก็ทำในนั้น
-- จบ ---
Date :
2010-07-21 15:39:46
By :
tungman
หน้าตามันเปนแบบนี้ค่ะ คือ แต่ละปุ่ม จะต้องมีการเก็บค่า คอร์ดและรหัส เช่น T09 ของแต่ละช่องพอคลิกก็จะส่งค่าไป อีกฟอร์มมีหน้าต่างขึ้นมาว่า จะไปเข้าใช้ จอง หรือ เรียน เช่น ถ้าเราคลิก ที่ จอง ข้อมูลของคอร์ดและรหัส ก้อจะถูกส่งไปยังหน้าจองและพอบันทึกจากหน้าจองลงสู่ database สถานะของปุ่มก้อจะเปลี่ยน ค่ะ คือเปลี่ยนเปนอีกสีหนึ่ง และก้อจะมาโชว์ที่หน้านี้ค่ะ คือสีของปุ่มแต่ละช่อง จะเปลี่ยนไปตามสถานะที่เลือกค่ะ ขอบคุนมากๆ เลยนะค่ะ ที่ช่วยค่ะ
Date :
2010-07-23 20:32:20
By :
lovely1923
Date :
2010-08-18 10:15:48
By :
Guest
ขอดูโค้ด คอดแบต หน่อยครับ @am
Date :
2014-09-18 17:38:35
By :
piya
ไม่รู้ว่าทำได้แล้วหรือยังถ้ายังไม่ลองเปลี่ยนวิธีสร้าง button คือหาวิธีที่มันง่ายขึ้น วิธีนี้อาจจะไม่ใช่วิธีที่ดี
ที่สุดนะครับ แต่ก็คิดว่าน่าจะช่วยให้หาทางออกได้
ตามนี้นะครับ
และก็ 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.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i < 11; i++)
{
Button newBtn = new Button();
newBtn.Text = "ห้อง เบอร์ " + i;
flowLayoutPanel1.Controls.Add(newBtn);
newBtn.Click += new EventHandler(newBtn_Click);
}
}
void newBtn_Click(object sender, EventArgs e)
{
Button clickedBtn = sender as Button;
clickedBtn.BackColor = Color.BlueViolet;
this.lblButtonIndex.Text = clickedBtn.Text;
}
}
}
Date :
2014-09-19 19:57:22
By :
ch_b
อืมไม่รู้ว่าทำได้หรือยังนะ แต่ก็ทำตัวอย่างมาให้ดูอีกครั้งจะได้เข้าใจมากยิ่งขึ้น
Date :
2014-09-23 10:05:54
By :
ch_b
เลือกห้องแล้ว ส่งหมายเลขห้องไปอีก ฟอร์มหนึ่ง ทำไงคับ
Date :
2014-09-23 13:43:51
By :
piya
ตัวอย่างนี้มี Form4 กับ Form5 นะทำตามนี้
#Form4
แก้ ArrayList myRoom = new ArrayList();
เป็น
public static ArrayList myRoom = new ArrayList();
Code (C#)
//ประกาศตัวแปร myRoom เป็น ArrayList แบบ public static เป็นแบบสาธารณะ คืออยู่หน้าไหนก็เรียกดูได้เลย
public static ArrayList myRoom = new ArrayList();
void newBtn_Click(object sender, EventArgs e)
{
Button clickedBtn = sender as Button;
if (myRoom.Count > 0)
{
int idx = myRoom.IndexOf(clickedBtn.Text);
if (idx > -1)
{
MessageBox.Show(clickedBtn.Text + " มีการจองแล้ว จะยกเลิกนะ");
myRoom.RemoveAt(idx);
}
}
if (clickedBtn.BackColor != Color.Orange)
{
clickedBtn.BackColor = Color.Orange;
myRoom.Add(clickedBtn.Text);
}
else
{
clickedBtn.BackColor = Color.White;
}
string showroom = string.Empty;
foreach (Object obj in myRoom)
{
showroom = showroom + obj.ToString() + "\n";
}
this.lblButtonIndex.Text = showroom;
}
//แสดงรายการที่เลือก
private void button2_Click(object sender, EventArgs e)
{
Form5 frm = new Form5();
frm.ShowDialog();
}
#Form5
จากนั้นเพิ่มฟอร์มมีอีกหนึ่งคือ Form5
ในฟอร์มก็จะมี control แค่ Lable หนึ่งอัน ดับเบิลคลิก Form5 เข้าสู่ Event From Load
Code ก็ตามนี้
Code (C#)
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}
private void Form5_Load(object sender, EventArgs e)
{
string showroom = string.Empty;
foreach (Object obj in Form4.myRoom)
{
showroom = showroom + obj.ToString() + "\n";
}
label1.Text = showroom;
}
}
}
#Form4
เพิ่ม Button มาอีกหนึ่งอันดับเบิลเพื่อเข้า Event Click
จากนั้นเขียน Code ตามนี้
Code (C#)
Form5 frm = new Form5();
frm.ShowDialog();
จากนั้นก็รันโลด ข้อยเมื่อยหลายเด้ บ่เคยอธิบายอียังหลายปานนี้ส่วนมากกะตอบน้อยๆ
อาจจะอธิบายเยอะหวังว่าคงเข้าใจนะครับ ถ้าไม่ก็ขอโทษด้วยนะครับ
Date :
2014-09-23 15:10:35
By :
ch_b
newBtn คือปุ่มไหนคับ myroom คือปุ่มรัย
แล้วฟอม4 ต้องเขียนโค้ดลงปุ่มไหนคับ
รบกวนอีกแล้ว
Date :
2014-09-23 20:55:34
By :
piya
Load balance : Server 03