【问题标题】:how to add dynamically buttons to a listview?如何将动态按钮添加到列表视图?
【发布时间】:2014-04-30 07:19:30
【问题描述】:

我有一个表单和一个 ListView 控件,我正在尝试使用此代码向其动态添加按钮

SqlDataReader reader = null;

SqlConnection test = new SqlConnection(@"Data Source=localhost;Initial Catalog=demo;Integrated Security=True;Pooling=False");

string query = "SELECT* FROM Sample";

try
{
    test.Open();

    SqlCommand cmd = new SqlCommand(query, test);
    reader = cmd.ExecuteReader();

    while (reader.Read())
    {
        int btnID = Convert.ToInt32(reader["Id"]);
        string btnName = reader["name"].ToString();
        Button btnObj = new Button();
        btnObj.Name = btnID.ToString();
        btnObj.Text = btnName;

        new System.Drawing.Size(150, 30);

        this.listView1.Controls.Add(btnObj);
    }
}
catch (Exception)
{
    throw;
}

示例表有 3 条记录,但它在列表视图中仅显示 1 个按钮,该按钮是示例表的第一条记录的名称。在调试期间它进入while循环3次?请指导我做错了什么?

【问题讨论】:

    标签: winforms listview c#-4.0


    【解决方案1】:

    列表框不支持很好的添加控件。它可能正在表单上的同一位置绘制所有按钮,这就是您看不到它们的原因。解决此问题的更好方法是使用 flowLayoutPanel 来包含您的控件。

    【讨论】:

      【解决方案2】:

      以上代码在我的系统中运行,如下所示:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-06
        • 1970-01-01
        • 1970-01-01
        • 2014-01-09
        • 1970-01-01
        • 1970-01-01
        • 2023-01-09
        • 1970-01-01
        相关资源
        最近更新 更多