根据给定文本声明字符串的值

时间:2017-08-15 02:34:52

标签: c# visual-studio variables windows-forms-designer

我对编程很陌生,所以我会问我如何根据对象文本声明字符串的值。

所以基于我的界面的title.Text。我将确定字符串值。这是我试过的代码:

 public Mainmenu()
    {
        InitializeComponent();
        initializeOffice();

    }
    public string office;

    public void initializeOffice()
    {
        if (officeName.Text == "Accounting Office")
        {
            office = "Accounting";
        } else if (officeName.Text == "Registrar's Office")
        {
            office = "Registrar";
        }

我使用office字符串作为变量来确定我的文件夹路径,因为Accounting和Registrar Offices都有不同的目录。例如:

using (StreamWriter objWriter = File.AppendText("C:Desktop\\" + office + "\\Finished\\" + ticketNumber.Text +".txt"))

任何人都可以帮助我吗?字符串办公室似乎总是显示"会计"即使办公室文本已经不同,也要有价值。

其他:

if (chooseService.Text == "")
                     {
                     MessageBox.Show("Please specify the department.");
                     }
                   else
                     {
                       this.Hide();
                       Mainmenu login = new Mainmenu();

                       login.Show();
                       login.officeName.Text = chooseService.Text;
                     }

这是我的officeName的内容被提取的地方。 chooseService对象是一个comboBox,可以选择不同的办公室。

1 个答案:

答案 0 :(得分:1)

所以这里的问题是你MainMenu表单在设置字符串之前初始化标题,它将用来确定应该设置什么'office'。

试试这个:

if (string.IsNullOrEmpty(chooseService.Text))
  MessageBox.Show("Please specify the department.");
else
{
  this.Hide();
  MainMenu login = new MainMenu(chooseService.Text);
  login.Show();
}

然后像这样修改您的MainMenu表单:

public Mainmenu(string department)
{
    InitializeComponent();
    initializeOffice(department);

}
public string office;

public void initializeOffice(string department)
{
    if (department == "Accounting Office")
    {
        office = "Accounting";
    } else if (department == "Registrar's Office")
    {
        office = "Registrar";
    }

这将保证您的主菜单类具有显示正确值所需的信息(或用于设置路径)。您还可以将标题的初始化移出MainMenu类的构造函数,并使用chooseService.Text中的字符串值调用initailiszeOffice,或者将工作bvut我更喜欢提供的代码。 Neater IMO。