如何从文本框中存储字符串,然后在C#中使用该字符串

时间:2013-10-15 19:56:00

标签: c# get set

这是一个简单的应用程序,应该记录学生的信息。在表格上有文字框,用于输入名称,课程等信息以及三个按钮“SET”,“CLEAR”和“GET”。设置按钮应该接受用户输入并将其存储为字符串,CLEAR按钮清除所有文本框,GET按钮应该将数据带回文本框。

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();
         }
     }




 }
} 

4 个答案:

答案 0 :(得分: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 ;
  }
}

答案 1 :(得分: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;
     }

答案 2 :(得分:0)

你真的应该发布你得到的错误。但无论如何,你遇到的问题是你在SetBttn_Click中声明你的变量,这意味着它们只存在于该方法中。那叫做局部变量。

要执行您尝试的操作,您需要将变量声明为表单中的字段:

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

这样他们将在你班级的所有方法中分享。我还建议不同地命名它们以将它们与局部变量区分开来。有些人在名字前加上下划线,我自己更喜欢m_FirstName

答案 3 :(得分:0)

您必须将字符串的声明移出方法:

// 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;
}