我试图将项目从另一个类添加到列表框。

我创建一个表单,表单名称为FilterControl,它具有一个列表框控件(listBoxColumnHeaders)

我创建了一个名为FilterColumnHeader的单独类,在其中创建了一个method()addColumnHeader()

现在,我尝试从此FilterControl类将项目添加到FilterColumnHeader表单的列表框

这是我的代码:

public void addColumnHeader(string name)
    {
        try
        {
            string cs = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;

            string query = @"SELECT
                            AsHeading
                        FROM
                            RSHeading WITH(NOLOCK);
            using (SqlConnection con = new SqlConnection(cs))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = query;
                cmd.Connection = con;

                con.Open();
                SqlDataReader rd = cmd.ExecuteReader();

                FilterControl fc = new FilterControl();
                while (rd.Read())
                {
                    fc.listBoxColumnHeaders.Items.Add(rd["AsHeading"].ToString());
                    MessageBox.Show(rd["AsHeading"].ToString()); //record is showing on message box

                }

            }
        }
        catch(Exception ee)
        {
            MessageBox.Show(ee.ToString());
        }

    }


注意


  如果我直接尝试从相同的形式(FilterControl)。它工作正常,而且数据库检索记录成功。
  
  我将列表框控件的修饰符设置为“公共”

最佳答案

尝试在班级内部访问表单:

var fc= Application.OpenForms.OfType<FilterControl>().SingleOrDefault();
while (rd.Read())
            {
                fc.listBoxColumnHeaders.Items.Add(rd["AsHeading"].ToString());
                MessageBox.Show(rd["AsHeading"].ToString());
            }

10-07 14:22
查看更多