我有兩個Windows窗體。我已經從數據庫中讀取數據並將數據加載到Form1(FrmSelection)
的Listbox1
中。現在我想要的是,當用戶在Form1
上從Listbox1
中選擇一個值並點擊處理按鈕時,必須在Form2(FrmProcessOrder) Listbox2
上加載所選值。我嘗試了不同的例子,但沒有得到它的工作。這裏有以下如何將listbox數據從form1傳遞給form2,並點擊按鈕
1.Run應用程序的步驟
2.FrmSelection空列表框打開,然後單擊這將打開FrmSelection
3.FrmSelections打開了,這種形式包含一個列表框和數據的過程按鈕我已經從數據庫中讀取。從列表框中選擇上FrmSelections項目後
5.Click Addforms按鈕列表框
4.Select一個項目。
- 所選項目必須出現在FrmProcessorder列表框中。
問題 - 我得到FrmProcessorder形式錯誤,當我選擇項目後單擊按鈕Addforms(對象不設置到對象的實例)
這裏是我下面的代碼..
Form1中(FrmSelection)
public partial class FrmProcessOrder : Form
{
public FrmProcessOrder()
{
InitializeComponent();
}
private void btnProcess_Click(object sender, EventArgs e)
{
Program._FrmSelection = new FrmSelection();
Program._FrmSelection.Show();
}
public void AddList(ListBox _Listing)
{
ListBoxForms.Items.AddRange(_Listing.Items);
}
}
形式2(FrmProcessOrder)
FrmProcessOrder _FrmProcessOrder;
public FrmSelection()
{
InitializeComponent();
LoadData();
}
//Method which reads data from the db and laod data on listview
public void LoadData()
{
_connection = "Data Source=MILESTONE-PC;Initial Catalog=Jack;Integrated Security=True";
_sql = "Select * from tblJackon";
_conn = new SqlConnection(_connection);
_conn.Open();
_comm = new SqlCommand(_sql, _conn);
_adapt.SelectCommand = _comm;
_adapt.Fill(_dataset, _sql);
DataTable _tbl = _dataset.Tables[0];
_dtrow = null;
foreach (DataRow _dataVariable in _tbl.Rows)
{
_dtrow = _dataVariable;
ListBoxSelection.Items.Add((_dtrow["FormNames"]));
}
}
private void btnAddForms_Click(object sender, EventArgs e)
{
_FrmProcessOrder.AddList(ListBoxSelection); // It throws error on this line after select from listbox so that the item must to FrmProcessOrder listbox
_FrmProcessOrder = new FrmProcessOrder();
}
FrmProcessOrder不包含帶0參數的構造函數。您可以嘗試移動代碼,以便在加載表單後加載數據? –
我已經更新了代碼並添加了一些解釋以使其更加清晰。 – JuniorLinq
您能否顯示錯誤? –