我正在尝试将项目添加到另一个类的列表框中。
我创建了一个名为 FilterControl 的表单名称,它有一个列表框控件( listBoxColumnHeaders )
我创建了一个名为 FilterColumnHeader 的单独类,在那里我创建了一个方法() 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)尝试。它工作正常,数据库也成功检索记录。
我将列表框控件的修饰符设置为Public
答案 0 :(得分:1)
尝试访问课程中的表单:
var fc= Application.OpenForms.OfType<FilterControl>().SingleOrDefault();
while (rd.Read())
{
fc.listBoxColumnHeaders.Items.Add(rd["AsHeading"].ToString());
MessageBox.Show(rd["AsHeading"].ToString());
}