2013-07-07 61 views
-2

http://i.stack.imgur.com/DpO5L.jpg http://i.stack.imgur.com/S9XL4.jpg添加到列表框中的另一種形式

我怎麼走,從形式1中的信息,並將其添加到窗體2嗎?

的形式1我有很多文本框,幾個組合框和其他的東西,我想這些項目添加到列表框中形式2.

這是我有什麼,但它不工作

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 ClassofEmployees 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
    class employee 
    { //will include the attributes of all employees of your organization. 

     //fields for employee 
     public int employeeId; // 5 digit number to represent employee 
     public int ssn; //social security number of employee 
     public string name; //employee name 
     public int dob; //date of birth 
     public int pay; //rate of pay 


    } 



    class managers : employee 
    { 
     public string backgroundCheck; 
     public string isSalary; 
     public string responsibilitys; 



    } 
    public void getEmployeeData(employee employee) 
    { 
     try 
     { 
      employee.employeeId = int.Parse(EmployeeID.Text); 
      employee.ssn = int.Parse(SSN.Text); 
      employee.name = employeeName.Text; 
      employee.dob = int.Parse(DOB.Text); 
      employee.pay = int.Parse(pay.Text); 
     } 
     catch (Exception ex) 
      { 
      MessageBox.Show(ex.Message); 
     } 
    } 
    private void BCToString() 
    { 
     string bcSelectedY; 
     string bcSelectedN; 
     if (bcselect.SelectedIndex != 1) 
     { 
      bcSelectedY = bcselect.SelectedItem.ToString(); 
     } 
     else 
      { 
       bcSelectedN = bcselect.SelectedItem.ToString(); 
      } 
    } 
    public void getMangerData(managers managers) 
    { 
     if (bcselect.SelectedIndex != 1) 
     { 
      managers.backgroundCheck = "yes"; 
     } 
     else 
     { 
      managers.backgroundCheck = "no"; 
     } 
     if (salary.SelectedIndex != 1) 
     { 
      managers.isSalary = "Yes"; 
     } 
     else 
     { 
      managers.isSalary = "No"; 
     } 
     managers.responsibilitys = responsibilitys.Text; 
    } 
    public void add_Click(object sender, EventArgs e) 
    { 
     //create new employee object 
     employee newemployee = new employee(); 
     //get employee data 
     getEmployeeData(newemployee); 
      //create new manager object 
     managers newmanagerialemployee = new managers(); 
     getMangerData(newmanagerialemployee); 

     EmployeeCumalitveList.employeeList.Items.Add(employee); 



    } 

    private void done_Click(object sender, EventArgs e) 
    { 
     EmployeeCumalitveList ecl = new EmployeeCumalitveList 
     ecl.Show; 
     this.Hide(); 



    } 



} 



} 

這就是錯誤是:

EmployeeCumalitveList.employeeList.Items.Add(employee); 

我得到的錯誤是:

錯誤1新的表達式需要(),[]或{} 類型C:\ Users \ T-Ali \ Desktop \ SHawnasschool \ vb.net 2 c#\ projects \ ClassofEmployees \ ClassofEmployees \ Form1.cs 108個66 ClassofEmployees

錯誤2可訪問性不一致:參數類型 'ClassofEmployees.Form1.employee' 比方法更少可訪問 'ClassofEmployees.Form1.getEmployeeData(ClassofEmployees.Form1.employee)' C:\用戶\ T-阿里\ Desktop \ SHawnasschool \ vb.net c#\ projects \ ClassofEmployees \ ClassofEmployees \ Form1.cs 42 21職員類別

錯誤3可訪問性不一致:參數類型 'ClassofEmployees.Form1.managers' 比方法 'ClassofEmployees.Form1.getMangerData(ClassofEmployees.Form1.managers)' C不易接近:\用戶\ T-阿里\桌面\ SHawnasschool \ VB .NET C#\項目\ ClassofEmployees \ ClassofEmployees \ Form1.cs中70個21 ClassofEmployees

回答

0

首先,你做的列表框公開? 我相信你可以通過選擇列表框,去屬性窗口,找到修飾符項目,並將其設置爲公開。

其次,確保包含員工列表的表單是靜態的,並且每次要添加員工時都不會創建相同的表單。 通過這樣做:

namespace WindowsFormsApplication1 
{ 
    public static class Program 
    { 
     public static EmployeeCumalitveList MyEmployeeList; 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      MyEmployeeList = new EmployeeCumalitveList(); 
      Application.Run(MyEmployeeList); 
     } 
    } 
} 
+0

是列表框是公共的形式2.爲什麼我會使用所有上面的代碼是什麼每個目的是什麼?在我的教科書中,我對C#不熟悉,例如他們沒有任何關於第二個表單是靜態的。 –

+0

正如我所說,員工表格*必須是靜態的。爲什麼?因爲以這種方式思考靜態:靜態類是一個類,每次都是同一個類。每次你做'新的EmployeeCumalitveList()',你會得到一個空表的新表單。但是,如果它是靜態的,則您使用相同的列表具有相同的表單。 上面的代碼生成一個靜態EmployeeCumalitveList,以便員工列表保持您想要的位置。從方法外部調用局部變量是沒有辦法的,所以你必須做一個靜態的變量。 (局部變量是在方法中聲明的,例如'done_Click'中的'ecl'。) – Dave

+0

我不確定它在你的教科書中寫了什麼,但就像我說過的,沒有辦法調用相同的局部變量幾種方法。你必須把它變成靜態的。雖然,你不必把它放在Program.cs中。我只是把它放在那裏,因爲這是一種習慣。 – Dave

相關問題