2017-08-15 63 views
0

我對編程非常陌生,所以我會問如何根據對象文本聲明字符串的值。基於給定文本聲明字符串的值

所以基於我的界面的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"; 
     } 

我用辦公室的字符串作爲一個變量來確定我的文件夾路徑,因爲這兩個會計和註冊局有不同的目錄。例如:

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對象是一個組合框,可以選擇不同的辦公室。

+0

您在設計器中定義的officeName.Text的默認值/啓動值是多少?何時設置爲所需的字符串(會計廳/註冊辦公室)? – CodexNZ

+0

它基於我的小程序的登錄屏幕。如果用戶必須在他/她登錄時選擇部門,並根據選擇,officeName將顯示在主菜單上。所以我也想根據登錄選擇將文件存儲到不同辦公室的不同文件夾中。這就像一個程序,用於兩個不同的辦公室。 –

+0

您可能想要搜索https://www.bing.com/search?q=c%23+get+value+from+textbox並查看如何從文本框中獲取值...如果您使用的代碼有效實際上是在你給用戶輸入一個值時給它打電話...... –

回答

1

所以這裏的問題是你的MainMenu表單正在初始化標題,然後再設置它將用來確定應該設置什麼「辦公室」的字符串。

試試這個:

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,或者我會更喜歡所提供的代碼。 Neater IMO。

+0

真的很奇怪的替換方法是從窗體上的文本框中讀取值......你可能想解釋你實際試圖用這個代碼來回答什麼問題。 –

+0

@AlexeiLevenkov你是什麼意思?用戶從組合中選擇一個項目,將其文本傳遞給MainMenu表單以初始化在文件夾路徑中使用的辦公室字段。似乎有一個假設,簡單地設置文本框的文本值會神奇地調用initialzeOffice方法。解決方案是上述代碼或設置文本框的文本屬性後調用initializeOffice()。如果我缺少某些東西,很樂意予以糾正。 – CodexNZ

+0

我現在看到...問題與OP實際需要的東西完全沒有關係,似乎是「傳遞價值形成」,因爲您回答了,但要求閱讀文本字段的值...您可能希望與OP對齊問題和答案... –