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

C# 如何存储文本框中的字符串,然后在C中使用该字符串#,c#,get,set,C#,Get,Set,这是一个简单的应用程序,用来记录学生信息。表格上有姓名、课程等信息的文本框和三个按钮“设置”、“清除”和“获取”。set按钮应该接受用户输入并将其存储为字符串,CLEAR按钮清除所有文本框,GET按钮应该将数据带回文本框 namespace Project1 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); }

这是一个简单的应用程序,用来记录学生信息。表格上有姓名、课程等信息的文本框和三个按钮“设置”、“清除”和“获取”。set按钮应该接受用户输入并将其存储为字符串,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();
         }
     }




 }
} 

因为您正在方法内部创建变量。在
Set
方法中,您正在创建local(to the method)变量,而无法在其他方法(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 ;
  }
}

问题是您需要在函数之外设置字符串,这样就不会有本地字符串

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

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

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

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

这样,它们将在类中的所有方法之间共享。我还建议对它们进行不同的命名,以便将它们与局部变量区分开来。有些人在名字前面加下划线,我自己更喜欢
m_FirstName

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

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

请同时发布您收到的错误。谢谢:)效果非常好