首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

winform控件请问

2013-12-13 
winform控件请教 private void Com(Control.ControlCollection c){richTextBox1.Clear()if (c.Count 0)

winform控件请教


 private void Com(Control.ControlCollection c)
        {
            richTextBox1.Clear();
            if (c.Count > 0)
            {
                foreach (Control c1 in c)
                {
                    if (c1.GetType().ToString().Equals("System.Windows.Forms.CheckBox"))
                    {
                        if(((CheckBox)c1).Checked== true)
                         {
                         //  richTextBox1.AppendText();
                         //
                         }
                    }

                    if (c1 != null)
                    {
                        Com(c1.Controls);
                    }
                    else
                    {
                        return;
                   }
                }
            }
            else
            {
                return;
            }
        }

[解决办法]
有一种方法就是,在name勾选时,触犯一个事件用来更改name1和name2的勾选状态,以下是代码
  private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (this.name.Checked)
                {
                    this.name1.Checked = true;
                    this.name2.Checked = true;
                }
            }
            catch (Exception es)


            {
                MessageBox.Show(es.Message);
            }
        }

这就可以了
[解决办法]
写个简单小例子


private void button2_Click(object sender, EventArgs e)
{
    for (int i = Convert.ToInt32('a'); i <= Convert.ToInt32('z'); i++)
    {
        test(this, Convert.ToChar(i).ToString(), Convert.ToChar(i) + "1", Convert.ToChar(i) + "2");
    }
}

void test(Form frm, string chk, string txt1, string txt2)
{
    Control c = frm.Controls.Find(chk, true)[0];
    (c as CheckBox).CheckedChanged += new EventHandler(
             (sender1, e1) =>
             {
                 (frm.Controls.Find(txt1, true)[0] as TextBox).Text = "啦啦啦";
                 (frm.Controls.Find(txt2, true)[0] as TextBox).Text = "德玛西亚";
             }
         );
}

[解决办法]
你把第一组的名称定义成一个枚举或数组
定义一控件参数
循环调出
{
    for(1...N)
    用this.FINDCO..后面忘了 按名字找到这个控件
    然后赋值(取数也一样)
}

热点排行