【问题标题】:How to store a string from a textbox and then use that string in C#如何存储文本框中的字符串,然后在 C# 中使用该字符串
【发布时间】:2013-10-15 19:55:59
【问题描述】:

这是一个用于记录学生信息的简单应用程序。表格上有姓名、课程等信息的文本框和三个按钮“SET”、“CLEAR”和“GET”。 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();
         }
     }




 }
} 

【问题讨论】:

  • 请同时发布您遇到的错误。

标签: c# get set


【解决方案1】:

因为您是在方法内部创建变量。在您的 Set 方法中,您正在创建 local(to the method) 变量,您无法在其他方法 (Get) 中读取它,因为该变量只能在 Set 方法中访问。 p>

解决方案:使用在您的方法之外定义的变量并从中存储和读取。在这里,我在类级别定义一个变量。这在所有方法中都可以访问。您可以在一种方法中设置一个值并在另一种方法中读取该值。

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

【讨论】:

  • 谢谢 :) 效果很好
【解决方案2】:

您确实应该发布您遇到的错误。但无论如何,您遇到的问题是您在SetBttn_Click 中声明变量,这意味着它们只会存在于该方法中。这就是所谓的局部变量。

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

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

这样它们将在您的类中的所有方法之间共享。我还建议以不同的方式命名它们,以将它们与局部变量区分开来。有些名字的前缀加下划线,我个人更喜欢m_FirstName之类的东西。

【讨论】:

    【解决方案3】:

    问题是你需要在你的函数之外设置你的字符串,所以不是本地的。

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-30
        • 2021-01-21
        • 1970-01-01
        • 2011-12-20
        • 2020-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多