2016-06-09 40 views
0

我有认为是由员工选择员工姓名的组合框。当我通过单击按钮为组合框添加名称时,是否有方法在下次启动程序时在组合框中保留名称?下面是我的代码,添加我知道需要在列表中的员工姓名,然后添加名称到组合框的代码。C#项目保存添加到组合框

private void employeeSelect_Load(object sender, EventArgs e) 
    { 
     cboEmpName.Items.AddRange(new string[] { "John", "Roger", "Bill", "Jason", "James" }); 
    } 


private void addTechbtn_Click(object sender, EventArgs e) 
    { 
     if (!string.IsNullOrEmpty(txtAddTech.Text)) 
     { 
      cboEmpName.Items.Add(txtAddTech.Text); 
      txtAddTech.Clear(); 
      MessageBox.Show("Technician has been added"); 
     } 
     else 
     { 
      MessageBox.Show("Enter a name to add to the list"); 
     } 
    } 
+1

为此,您可以通过在数据库或其他一些媒体(应用程序中的不硬编码)保存员工姓名。 –

+1

您需要存储来加载和保存数据。它可以是一个数据库,文件,设置等 –

+1

如果你想关闭你的应用程序后,有你的数据,你应该把它保存在一个数据库或其他存储设备。 – Hamed

回答

0

有多种选择可用。

在某些时候,答案归结为当务之急。我会说你会得到这些选项:

  1. 您可以存储在本地文件系统,并在窗体加载时再次阅读它们。
  2. 序列化并将其存储在注册表中(HKEY_CURRENT_USER - 用户特定)
  3. 将其存储在数据库中,并在需要时再次检索它。
  4. .NET Application settings,提供了在运行时访问您的 设置最简单的方法(选中此Example)。
1

如果您只想保留用户选择的最后一个值,UserSetting是保存此类值的最佳位置。

声明用户设定值 -

右键点击您的项目>>转到属性>>设置

说值为EmployeeNameCombovalue,那么你可以这样写的值 -

var empNameVal = Properties.Settings.Default.EmployeeNameCombovalue; 

,并保存在它的一些价值 -

Properties.Settings.Default["EmployeeNameCombovalue"] = cboEmpName.Text; 
Properties.Settings.Default.Save(); 

所以下一次,当程序出现时,你会检查用户设置中是否有值,如果是,请将其设置为组合框。

但是,如果它不只是拯救一个特定的值,并且要 保存所有一滴一滴往下值,那么我建议这些 值存储在像DB一些持久性存储,并结合您的数据来自 的组合框。并且,只要您为其添加新值,请在DB 中添加相同的值,然后更新您的组合框数据源。

https://msdn.microsoft.com/en-us/library/x8160f6f%28v=vs.110%29.aspx

+0

这是我做的事情。 –