这是wpf应用程序数学训练,它考虑在数学表达式解决方案上花费的时间。我有两个.cs文件Window4_2和Window2。 Window2中存在一个名为public int errors的计数器变量,它计算用户有多少错误。当我在Window4_2中调用并显示它时,它不显示在那里。这是代码:
Window2.xaml.cs代码:
public partial class Window2 : Window
{
static string storageVariable;
static int total = 0;
static int counter = 0;
public int errors = 0;
public Window2()
{
InitializeComponent();
random1();
}
public void random1()
{
Random rand = new Random();
int num1 = rand.Next(10);
int num2 = rand.Next(10);
Display.Text = Convert.ToString(num1) + "*" + Convert.ToString(num2);
total = num1 * num2;
}
private void btn_one_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "1";
storageVariable += "1";
}
private void btn_two_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "2";
storageVariable += "2";
}
private void btn_three_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "3";
storageVariable += "3";
}
private void btn_four_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "4";
storageVariable += "4";
}
private void btn_five_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "5";
storageVariable += "5";
}
private void btn_six_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "6";
storageVariable += "6";
}
private void btn_seven_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "7";
storageVariable += "7";
}
private void btn_eight_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "8";
storageVariable += "8";
}
private void btn_nine_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "9";
storageVariable += "9";
}
private void btn_zero_Click(object sender, RoutedEventArgs e)
{
main_display.Text += "0";
storageVariable += "0";
}
private void btn_clear_Click(object sender, RoutedEventArgs e)
{
main_display.Text = "";
storageVariable = null;
}
private void maindisplay_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
btn_equal_Click(sender, e);
}
}
public void btn_equal_Click(object sender, RoutedEventArgs e)
{
if (Convert.ToInt32(storageVariable) == total)
{
counter++;
main_display.Text = "";
total = 0;
storageVariable = null;
random1();
if (counter == 2)
{
main_display.Text = "";
total = 0;
storageVariable = null;
counter = 0;
var ob = new Window4_2();
ob.StopTimer();
var win4_2 = new Window4_2();
win4_2.Show();
this.Close();
}
}
if (Convert.ToInt32(storageVariable) != total)
{
errors++;
main_display.Text = "";
storageVariable = null;
}
}
}
Window4_2.xaml.cs代码:
public partial class Window4_2 : Window
{
Stopwatch sw = new Stopwatch();
DispatcherTimer dt = new DispatcherTimer();
string currentTime = string.Empty;
public Window4_2()
{
InitializeComponent();
dt.Tick += new EventHandler(dt_Tick);
dt.Interval = new TimeSpan(0, 0, 0, 0, 1);
ShowErrors();
}
private void dt_Tick(object sender, EventArgs e)
{
TimeSpan ts = sw.Elapsed;
currentTime = String.Format("{0:00}:{1:00}:{2:00}",
ts.Minutes, ts.Seconds, ts.Milliseconds / 10);
Timer.Text = currentTime;
}
public void StartTimer()
{
sw.Start();
dt.Start();
}
public void StopTimer()
{
if (sw.IsRunning)
sw.Stop();
}
public void ShowErrors()
{
Window2 ob = new Window2();
if (ob.errors != 0)
{
Errors_attempt.Text = Convert.ToString(ob.errors);
penalty_attempt.Text = Convert.ToString(ob.errors) + "x 5 seconds";
}
else
{
Errors_attempt.Text = "None";
penalty_attempt.Text = "None";
}
}
private void btn_Home_Click(object sender, RoutedEventArgs e)
{
var main_win = new MainWindow();
main_win.Show();
this.Close();
}
我应该如何连接并显示它?
答案 0 :(得分:0)
一个窗口必须知道另一个窗口。试试这样:
Window1
{
//Create your Window2 object here with Window2 MyWindow2 = new Window2(this)
public int error;
}
Window2
{
private Window1 MyCreatorWindow1;
public Window2(Window1 CreatorWindow)
{
this.MyCreatorWindow1 = CreatorWindow;
}
//Now you can get your error with: MyCreatorWindow1.error
}