如何在窗体中动态创建N个按钮,要求有规则排序

解决方案 »

  1.   

    新建一个panel,叫panel1,然后Button myButton = new Button();
    myButton.Text = “文字”;
    myButton.Name = “文字”;
    myButton.Click += new EventHandler(btContract_Click);
    this.panel1.Controls.Add(myButton);
      

  2.   

    myButton.Click += new EventHandler(btContract_Click);
    其中的btContract_Click里面写什么
      

  3.   


     private void btDataSource_Click(object sender, EventArgs e)
     {
       ...
     }这个属性是点击按钮后触发事件的,你如果没有按钮事件可以不写这个myButton.Click
      

  4.   

    public void bind() { pangeList.Controls.Clear(); progressBar1.Visible = true;
    progressBar1.Value = 0;
    progressBar1.Location = new System.Drawing.Point(292, 350);
    XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Common.xmlMyInfoPath); XmlNodeList nodeList = xmlDoc.SelectNodes("MyInfo/GameInfo"); Label[] lblArray = new Label[nodeList.Count];  //显示监控的详细  LinkLabel[] linkArrar = new LinkLabel[nodeList.Count]; //显示进货状态,及链接 TextBox[] txtArrar = new TextBox[nodeList.Count]; Button[] btnArrar = new Button[nodeList.Count];//修改按钮 for (int i = 0; i < nodeList.Count; i++) {
    if (nodeList.Count >= 10) {
    if (progressBar1.Value < 100) {
    progressBar1.Value = i * 10;
    }
    }
    else {
    if (progressBar1.Value < 100) {
    progressBar1.Value = i * 20;
    }
    }
    int childNodes = nodeList[i].ChildNodes.Count;//子级总共有几行? lblArray[i] = new Label();//创建Label 监控的信息 linkArrar[i] = new LinkLabel(); //创建LinkLabel 超链接 txtArrar[i] = new TextBox();//创建TextBox  汇率 文本框。 btnArrar[i] = new Button();//创建 button  修改按钮 lblArray[i].Location = new System.Drawing.Point(10, i * 45); //详细信息的坐标 linkArrar[i].Location = new System.Drawing.Point(270, i * 45);//超链接的坐标 txtArrar[i].Location = new System.Drawing.Point(420, i * 45);//文本框的坐标 btnArrar[i].Location = new System.Drawing.Point(520, i * 45); //按钮的坐标
    btnArrar[i].Text = "修改"; //值 = ChildNodes[子级索引].InnerText string lastPrice = nodeList[i].ChildNodes[childNodes - 2].InnerText;//得到汇率 txtArrar[i].Text = lastPrice; //赋予汇率 string url = nodeList[i].ChildNodes[childNodes - 1].InnerText;  //得到监控的url linkArrar[i].ImageKey = url; //赋予 url  linkArrar[i].Click += new EventHandler(linkUrl);//超链接事件 txtArrar[i].MaxLength = 5;
    txtArrar[i].KeyPress += new KeyPressEventHandler(Form1_KeyPress);//禁止输入非double的事件 btnArrar[i].ImageKey = nodeList[i].Attributes["Guid"].Value;//得到GUID和价格
    btnArrar[i].Click += new EventHandler(btnUpdate_Click);
    lblArray[i].Text = nodeList[i].ChildNodes[0].InnerText + " " + nodeList[i].ChildNodes[1].InnerText + " " + nodeList[i].ChildNodes[2].InnerText;//基本信息 linkArrar[i].Text = _5173.Load5173(url, double.Parse(txtArrar[i].Text), this);//监控事件 lblArray[i].Name = "lbl" + i;
    lblArray[i].Width = 200;
    linkArrar[i].Name = "link" + i;
    linkArrar[i].Width = 120;
    linkArrar[i].LinkBehavior = LinkBehavior.NeverUnderline;// 取消下划线
    txtArrar[i].Name = "txt" + i;
    txtArrar[i].Width = 50;
    btnArrar[i].Name = "btn" + i;
    btnArrar[i].Width = 50; ToolTip toolTip1 = new ToolTip();
    toolTip1.AutoPopDelay = 10000;
    toolTip1.InitialDelay = 500;
    toolTip1.ReshowDelay = 500;
    toolTip1.ToolTipTitle = "提示:";
    toolTip1.ToolTipIcon = ToolTipIcon.Info;
    toolTip1.ShowAlways = true;
    toolTip1.SetToolTip(btnArrar[i], "如需永久保存该价格,请点击修改。否则文本框仅本次有效,下次程序启动依然按照当初所设价格。"); } progressBar1.Visible = false;
    //往panel添加数据
    pangeList.Controls.AddRange(lblArray);
    pangeList.Controls.AddRange(linkArrar);
    pangeList.Controls.AddRange(txtArrar);
    pangeList.Controls.AddRange(btnArrar); }
      

  5.   

    有规则排序是?addcontrol的时候还要控制样式么。