当前位置:编程学习 > C#/ASP.NET >>

动态添加控件

我想winform中的输入框控件随着数据库中的字段增加而相应增加,
并通过sql进行数据插入。该怎么实现呢 --------------------编程问答-------------------- winform中每个控件,包括窗体都有这个属性的:Controls

你可以这样使用Controls.Add(你的新控件) --------------------编程问答-------------------- TextBox t1 = new TextBox();
this.Controls.Add(t1); --------------------编程问答--------------------  
CheckBox的自动增加
private void AllCheck_CheckedChanged(object sender, EventArgs e)
        {

                foreach (Control con in this.Controls)
                {
                    if (con is CheckBox && con.Name != "UnAllCheck")
                    {
                        (con as CheckBox).Checked = true;
                    }
                    else if (con is CheckBox && con.Name == "UnAllCheck")
                    {
                        (con as CheckBox).Checked = false;
                    }
                    else if (con is GroupBox)
                    {
                        foreach (Control conn in con.Controls)
                        {
                            if (conn is CheckBox)
                            {
                                (conn as CheckBox).Checked = true;
                            }
                        }
                    }
                }

        } --------------------编程问答-------------------- 错了,是选中与不选中状态 --------------------编程问答-------------------- 那insert的sql语句怎么写呢 --------------------编程问答-------------------- 拼 --------------------编程问答-------------------- 大家提供下代码 --------------------编程问答-------------------- 先判断表里有多少个字段,在界面添加几个输入控件。 --------------------编程问答-------------------- 给您一个自动添加控件的代码.

            //创建“文本框”控件
              TextBox inPutText = new TextBox();
              inPutText.Size = new Size(432, 20);
            inPutText.Location = new Point(10, 105);
            inPutFrm.Controls.Add(inPutText);
            inPutText.SelectAll();

生成SQL语句最主要不就是想如何获得自动生成文本框的值吗?如下:

获得文本框值:inPutText.Text --------------------编程问答-------------------- 控件的位置,是否可為空的控制呢 --------------------编程问答-------------------- 如果想生成一组文本框,那就要声明控件数组了.获取值时用foreach语句.实现逻辑自己想下咯. --------------------编程问答-------------------- 可以,但不好,自动生成多个的时候,理论上会重叠在一起了. --------------------编程问答-------------------- 我是这样做的.

判断表里有多少个字段,在界面添加几个输入控件。
然后,用表保存输入的控件值.
控件名称1/控件名称2..
控件1的值/控件2的值..

--------------------编程问答-------------------- 我明白您的意思!要保存值就要获得控件的输入值啊!


              TextBox inPutText = new TextBox();        //声明控件
              inPutText.Size = new Size(432, 20);      //控件大小
            inPutText.Location = new Point(10, 105);   //控件位置
            inPutFrm.Controls.Add(inPutText);          //添加控件到窗体(inPutFrm为窗体名称

插入数据:

insert into 表名(字段1,字段2) values(inPutText.Text,inPutText2.Text)
--------------------编程问答-------------------- 置于如何判断表里有多少个字段,您应该好明白了吧!

比如您判断知道有10个字段,则代码如下:

TextBox[] inPutText = new TextBox[10];        //声明控件 
for (int i=0;i<10;i++)
{
       inPutText[i].Size = new Size(432, 20);      //控件大小 
        inPutText[i].Location = new Point(?, ?);    //自定控件位置 
         inPutFrm.Controls.Add(inPutText[i]);          //添加控件到窗体(inPutFrm为窗体名称
}

//获取控件值
string str=null;
foreach (TextBox txtBox in inPutText)
{
   str+=txtBox.Text+",";
}
最后把最后一个","去年就可以获得值了.
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,