我在c#中遇到动态按钮的问题。我已经为Pos开发了一个应用程序,我需要创建一组产品,但是当我点击组按钮时,我必须按产品组的名称显示产品分类。
这是我的代码:
private void Pos_Load(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection("server=localhost;user id=root;database=programmj;allowuservariables=True");
conn.Open();
string query = string.Format("SELECT * FROM priduct_group");
MySqlCommand cmd = new MySqlCommand(query);
DataTable dt = new DataTable();
DataSet ds = new DataSet();
MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn);
adapter.Fill(dt);
ds.Tables.Add(dt);
int top = 0;
int left = 4;
foreach (DataRow dr in dt.Rows)
{
Button button = new Button();
button.FlatStyle = FlatStyle.Flat;
button.BackColor = Color.Gold;
button.Text = dr[1].ToString();
button.Font = new Font("Microsoft Sans Serif", 20, FontStyle.Bold);
button.Size = new Size(170, 85);
button.Left = left;
button.Top = top;
panel8.Controls.Add(button); // here
top += button.Height + 2;
button.Click += new System.EventHandler(Button_Click);
}
}
这是我展示产品的另一个代码
private void Button_Click(object sender, EventArgs e)
{
MySqlConnection conn = new MySqlConnection("server=localhost;user id=root;database=programmj;allowuservariables=True");
conn.Open();
string query = string.Format("SELECT * FROM tblartikujt ");
MySqlCommand cmd = new MySqlCommand(query);
DataTable dt = new DataTable();
DataSet ds = new DataSet();
MySqlDataAdapter adapter = new MySqlDataAdapter(query, conn);
adapter.Fill(dt);
ds.Tables.Add(dt);
int top = 0;
int left = 4;
foreach (DataRow dr in dt.Rows)
{
panel5.Dock = DockStyle.Right;
Button button = new Button();
button.Padding = new Padding(20, 3, 20, 3);
button.FlatStyle = FlatStyle.Flat;
button.ForeColor = Color.White;
button.BackColor = Color.Green;
button.Text = dr[3].ToString();
button.Text = dr[10].ToString();
button.Font = new Font("Microsoft Sans Serif", 14, FontStyle.Bold);
button.Size = new Size(200, 85);
button.Left = left;
button.Top = top;
panel5.Controls.Add(button); // here
top += button.Height + 2;
}
}
答案 0 :(得分:1)
你的问题似乎很模糊,但让我试试。
您是否在询问如何以排序方式在方法button
中分配Pos_Load
?
(通过这样做,panel8
将按照您排序的方式包含按钮。)
如果您要问的是,您只需使用order by
编写SQL查询,如下所示:
SELECT
*
FROM
product_group
ORDER BY
product_name
DESC
通过上述查询,您可以控制DataRow
按顺序进行选择,这将导致button
排序DataRow's
信息。