2013-10-15 40 views
0

這是一個簡單的應用程序,應該保留學生信息的記錄。在表單上有用於提供姓名,課程等信息的文本框以及三個按鈕「SET」,「CLEAR」和「GET」。設置按鈕應該將用戶輸入並將其存儲爲字符串,CLEAR按鈕清除所有文本框,並且GET按鈕應該將數據帶回到文本框中。如何從文本框中存儲字符串,然後在C#中使用該字符串

namespace Project1 

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 



    public void SetBttn_Click(object sender, RoutedEventArgs e) 
    { 
     string firstname = FirstNameTxtBox.Text; 
     string lastname = LastNameTxtBox.Text; 
     string course = CourseTxtBox.Text; 
     string mno = MNoTxtBox.Text; 
     string yrmark = YrMarkTxtBox.Text; 
    } 

    private void ClrBttn_Click(object sender, RoutedEventArgs e) 
    { 
     FirstNameTxtBox.Text = String.Empty; 
     LastNameTxtBox.Text = String.Empty; 
     CourseTxtBox.Text = String.Empty; 
     MNoTxtBox.Text = String.Empty; 
     YrMarkTxtBox.Text = String.Empty; 
    } 

    private void GetBttn_Click(object sender, RoutedEventArgs e) 
    { 
     FirstNameTxtBox.Text = firstname; 
     LastNameTxtBox.Text = lastname; 
     CourseTxtBox.Text = course; 
     MNoTxtBox.Text = mno; 
     YrMarkTxtBox.Text = yrmark; 


    } 

    private void ShowBttn_Click(object sender, RoutedEventArgs e) 
    { 
     { 
      phd newWin = new phd(); 
      newWin.Show(); 
     } 
    } 




} 
} 
+0

也請發表你所得到的錯誤。 – Chris

回答

0

你真的應該發佈你得到的錯誤。但無論如何,你在那裏的問題是你在SetBttn_Click中聲明你的變量,這意味着它們將只存在於該方法中。這就是所謂的局部變量。

要你嘗試,你需要聲明的變量在窗體本身領域的內容:

public partial class MainWindow : Window 
{ 
    private string firstname, lastname, course, mno, yrmark; 
    ... 

他們之間在類的所有方法可以共享的方式。我還建議以不同的方式命名它們以區別於局部變量。有些人用一個下劃線前綴名字,我自己喜歡m_FirstName之類的東西。

+0

謝謝,現在它工作:) – Barboro37

2

因爲您在方法內部創建了變量。在您的Set方法中,您正在創建本地(至方法)變量,並且無法在其他方法(Get)中讀取它,因爲該變量只能在Set方法中訪問。

解決方案:使用在您的方法外定義的變量並存儲並讀取該變量。在這裏我定義了一個類級別的變量。這在所有方法中都是可訪問的。您可以在一個方法中設置一個值,並以另一種方法讀取該值。

public partial class MainWindow : Window 
{ 
    private string _firstName; 
    public void SetBttn_Click(object sender, RoutedEventArgs e) 
    { 
    //Setting the value to the class level scoped variable. 
     _firstName = FirstNameTxtBox.Text; 
    } 
    private void GetBttn_Click(object sender, RoutedEventArgs e) 
    { 
    //Reading the value from the class level scoped variable. 
    FirstNameTxtBox.Text = _firstName ; 
    } 
} 
+0

謝謝:)作品超級 – Barboro37

+0

@ user2883982不客氣。很高興我可以幫助:) – Shyju

0

問題是你需要設置你的函數在你的函數之外,所以沒有本地。

string firstname; 
string lastname; 
string course; 
string mno; 
string yrmark; 
public void SetBttn_Click(object sender, RoutedEventArgs e) 
    { 
     firstname = FirstNameTxtBox.Text; 
     lastname = LastNameTxtBox.Text; 
     course = CourseTxtBox.Text; 
     mno = MNoTxtBox.Text; 
     yrmark = YrMarkTxtBox.Text; 
    } 
0

您必須將字符串的申報走出了Methode的:

// Declaration: 
private string firstname = ""; 
private string lastname = ""; 
private string course = ""; 
private string mno = ""; 
private string yrmark = ""; 

public MainWindow() 
{ 
    InitializeComponent(); 
} 

public void SetBttn_Click(object sender, RoutedEventArgs e) 
{ 
    firstname = FirstNameTxtBox.Text; 
    lastname = LastNameTxtBox.Text; 
    course = CourseTxtBox.Text; 
    mno = MNoTxtBox.Text; 
    yrmark = YrMarkTxtBox.Text; 
} 
相關問題