用户控件动态创建添加

Posted 游称

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户控件动态创建添加相关的知识,希望对你有一定的参考价值。

使用用户控件:

项目右键添加,用户控件,选择用户控件cs

在生成的项目中用设计编辑,点击菜单栏生成,生成解决方案,然后用户控件就可以使用了

制作简单的qq窗口,根据数据库自动添加数据

制作用户控件:

实体类:(qq,haoyou)

qq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QQ.App_Code
{
    public class qq
    {
        public string qqnumber { get; set; }
        public string password { get; set; }
        public string nickname { get; set; }
        public string content { get; set; }

    }
}

haoyou:包含两个属性扩展,使显示昵称和个性签名

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace QQ.App_Code
{
    public class haoyou
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;
        public haoyou()
        {
            conn = new SqlConnection("server=.;database=lianxi0928;user=sa;pwd=123");
            cmd = conn.CreateCommand();        
        }

        public string qqnumber { get; set; }
        public string friendqqnumber { get; set; }

        public string fnickname
        {
            get
            {
                string end = "null";
                cmd.CommandText = "select*from qq where qqnumber=@a";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@a",friendqqnumber);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                    end = dr["nickname"].ToString();
                    
                }
                conn.Close();
                return end;
            }       
        }

        public string fcontent
        {
            get
            {
                string end = "null";
                cmd.CommandText = "select*from qq where qqnumber=@a";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@a", friendqqnumber);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                    end = dr["content"].ToString();

                }
                conn.Close();
                return end;
            }
        }
    }
}

数据访问类:haoyoudata

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace QQ.App_Code
{
    public class haoyoudata
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;

        public haoyoudata()
        {
            conn = new SqlConnection("server=.;database=lianxi0928;user=sa;pwd=123");
            cmd = conn.CreateCommand();       
        }
        public List<haoyou> select(string qqnb)
        {
            List<haoyou> hlist = new List<haoyou>();
            cmd.CommandText = "select*from haoyou  where qqnumber=@a";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a",qqnb);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    haoyou hy = new haoyou();
                    hy.qqnumber = dr["qqnumber"].ToString();
                    hy.friendqqnumber = dr["friendqqnumber"].ToString();

                    hlist.Add(hy);
                }
            }

            conn.Close();
            return hlist;
        }    
    }
}

form1中:

using QQ.App_Code;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QQ
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            //将当前登录账号的全部好友信息全部取出来
            List<haoyou> hlist = new haoyoudata().select(label1.Text);
            //动态创建好友用户控件,添加到容器中去
            for (int i = 0; i < hlist.Count; i++)
            {
                qqhaoyu hy = new qqhaoyu();
                hy.label1.Text = hlist[i].fnickname;
                hy.label2.Text = hlist[i].fcontent;

                flowLayoutPanel1.Controls.Add(hy);
            }

        }
    }
}

生成显示:

 

以上是关于用户控件动态创建添加的主要内容,如果未能解决你的问题,请参考以下文章

用户控件动态创建添加

WinForm用户控件动态创建添加控件timer控件--12月12日

我可以使用构造函数动态创建用户控件吗?

ASP.NET用户自定义控件

asp.net 动态添加多个用户控件

动态创建DTPicker控件