在开发食神软件的时候,动态生成按钮式必不可少的!!特别是前台点菜模块!!生成口味按钮,菜的按钮,送单管理员的按钮!!下面的一个生成食品自身是否有口味按钮的例子
DataSet dsfoodfeel = od.SearchFoodFeel(foodid);
if (dsfoodfeel.Tables[0].Rows.Count > 0) //判断自身食品是否有口味
{
panel6.Controls.Clear();
maxPage = ((dsfoodfeel.Tables[0].Rows.Count - 1) / 25) + 1;
FeelFuncButton[] b = new FeelFuncButton[dsfoodfeel.Tables[0].Rows.Count];
//绘制【全部】的口味按钮
for (int j = 0; ((j + (pageNum - 1) * maxNum) < dsfoodfeel.Tables[0].Rows.Count) && (j < maxNum); j++)
{
b[j] = new FeelFuncButton();
b[j].Size = new Size(90, 65);
if (j < dsfoodfeel.Tables[0].Rows.Count)
{
maxPage = ((dsfoodfeel.Tables[0].Rows.Count - 1) / maxNum) + 1;
b[j].TXT = (dsfoodfeel.Tables[0].Rows[j]["FeelName"].ToString()); //口味按钮名称
b[j].Name = (dsfoodfeel.Tables[0].Rows[j]["FeelID"].ToString());
Hashtable ht = new Hashtable();//定义一个表
ht.Add("Amt", decimal.Parse(dsfoodfeel.Tables[0].Rows[j]["CalcAmt"].ToString()));//把需要的属性增加到表ht中
ht.Add("CalcType", dsfoodfeel.Tables[0].Rows[j]["CalcType"].ToString());//把需要的属性增加到表ht中
ht.Add("MutexGroup", int.Parse(dsfoodfeel.Tables[0].Rows[j]["MutexGroup"].ToString()));//把需要的属性增加到表ht中
ht.Add("Scale", int.Parse(dsfoodfeel.Tables[0].Rows[j]["Scale"].ToString()));//把需要的属性增加到表ht中
b[j].Tag = ht;//Tag属性选中的表
}
if (j % 5 == 0 && j != 0)
{
k++;
}
System.Drawing.Point p = new Point(20 + (j % 5) * 110, 15 + k * 70); //创建一个坐标,用来给按钮定位
b[j].Location = p; //把按钮的位置与刚创建的坐标绑定在一起
panel6.Controls.AddRange(b); //向panel中添加此按钮
b[j].Click += new System.EventHandler(getfeelbtn_click); //将按钮的方法绑定到按钮的单击事件中b.Click是按钮的单击事件
}