这是一个简单的应用程序,应该记录学生的信息。在表格上有文字框,用于输入名称,课程等信息以及三个按钮“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();
}
}
}
}
答案 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;
}