C# 基于给定文本声明字符串的值
我对编程非常陌生,所以我想问一下如何基于对象文本声明字符串的值 所以基于我界面的标题文本。我将确定字符串值。以下是我尝试的代码:C# 基于给定文本声明字符串的值,c#,visual-studio,variables,windows-forms-designer,C#,Visual Studio,Variables,Windows Forms Designer,我对编程非常陌生,所以我想问一下如何基于对象文本声明字符串的值 所以基于我界面的标题文本。我将确定字符串值。以下是我尝试的代码: public Mainmenu() { InitializeComponent(); initializeOffice(); } public string office; public void initializeOffice() { if (officeName.Tex
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字符串作为变量来确定文件夹路径,因为会计办公室和注册办公室都有不同的目录。例如:
using (StreamWriter objWriter = File.AppendText("C:Desktop\\" + office + "\\Finished\\" + ticketNumber.Text +".txt"))
有人能帮我吗?似乎字符串office总是显示“Accounting”值,即使office文本已经不同
其他:
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对象是一个组合框,包含不同办公室的选项。因此,这里的问题是,在设置字符串之前,主菜单窗体正在初始化标题,该字符串将用于确定“office”应设置为什么 试试这个:
if (string.IsNullOrEmpty(chooseService.Text))
MessageBox.Show("Please specify the department.");
else
{
this.Hide();
MainMenu login = new MainMenu(chooseService.Text);
login.Show();
}
然后修改主菜单表单,如下所示:
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,两者都可以,但我更喜欢提供的代码。更简洁。您在设计器中定义的officeName.Text的默认/启动值是多少?何时将其设置为所需字符串(会计办公室/注册办公室)?它基于我的小程序的登录屏幕。如果用户在登录时必须选择部门,则officeName将显示在主菜单上。因此,我还希望根据登录选择,将文件存储到不同办公室的不同文件夹中。这就像一个用于两个不同办公室的程序。您可能想搜索并了解如何从文本框中获取值。。。如果您在给用户输入值的机会时调用它,那么您拥有的代码就可以工作了……这对于从表单上的文本框中读取值来说真是一个奇怪的替代品。。。你可能想解释一下你用这段代码试图回答的问题。@AlexeiLevenkov你是什么意思?用户从组合中选择一个项目,该项目的文本被传递到主菜单表单以初始化文件夹路径中使用的office字段。似乎有一种假设,即只需设置文本框的文本值,就可以神奇地调用initialzeOffice方法。解决方案是使用上述代码或在设置文本框的text属性后调用initializeOffice()。如果我遗漏了什么,很高兴被纠正。我现在明白了。。。这个问题和OP实际需要什么完全并没有关系,正如你们所回答的那个样,它似乎是“将值传递到表单”,但询问文本字段的读取值。。。您可能希望与OP一起调整问题和答案……您是否也修改了构造函数签名以要求使用字符串参数?您遇到了什么错误?(CodexNZ,如果您没有在评论中提供@,如果有多个评论,则不会通知任何人)