我有两个窗体,在第一个主窗体中动态生成了15个checkbox控件,现在想用第二个个窗体中控件读取用户输入数值来控制第一个窗体中的动态生成的checkbox的位置坐标。(就是用户在第二个窗体中输入坐标值,第一个窗体中的动态控件checkbox的坐标随之改变)请问如何能控制这第一个窗体中的15个动态checkbox呢?(静态生成的控件的控制方法我已解决,现在就是动态的控件不知道怎么搞,请大家指点,我是刚学的最好能有个小例子,麻烦大家了)

解决方案 »

  1.   

    http://topic.csdn.net/t/20030730/18/2090591.html
      

  2.   

    楼上给出的链接方法可以。在动态添加控件的时候,同时把控件写入hashtable。在form2中通过这个hashtable来找到各个控件的实例。或者把hashtable改称ArrayList也可以。
      

  3.   

    或者就干脆遍历form中的控件找到你要改变的。
      

  4.   

    zhaochong12 提供的方法在单个窗体中可以实现的,现在我在第二个窗体中怎样写呢! public object objForm; //在第二个窗体中声明了一个公有的对象引用
     private void my_numericUpDown_ValueChanged(object sender, EventArgs e)
            {
                ((FormMain)(objForm)).checkBoxtown1.Location = new Point(88, 670); //调用第一个窗体的设计时创建的控件可以实现
             //那调用第二个窗体的动态控件的该怎么写呢
            }
    //以上为在第二个窗体中写的内容//以下为在第一个窗体中写的内容
     public Hashtable mht = new Hashtable();
    private void AddCheckboxTown(int counter,string readline)//动态添加控件函数
            {  
             .......
              mht[xCheckboxTown.Name] = xCheckboxTown;
             }
           private void townSetToolStripMenuItem_Click(object sender, EventArgs e)//显示第二个窗体
            {
                FormTownSet m_formTownSet = new FormTownSet();
                m_formTownSet.objForm = this;            m_formTownSet.Show();
            }我刚学C#没几天只在不会写了,请高手帮帮忙