Ich soll ein Mathe-Übungsprogramm für Kinder machen. Sie sollten in der Lage sein, 1 Operation und die Anzahl der Ziffern (1, 2 oder 3 Ziffern) zu wählen. Es muss dann 10 zufällige Fragen entsprechend der vom Kind getroffenen Auswahl stellen, dann, sobald sie das Quiz abgeschlossen haben, sollte es ihre Ergebnisse zeigen und welche Fragen sie falsch beantwortet haben.Übergeben von Daten zwischen form1 und form2 in C#
Ich habe zwei Auswahlen auf Form1, Operationen und Anzahl der Ziffern, die Nummern (1. (*) 2. (/) 3. (+) 4. (-)) zugeordnet sind. Alles, was ich tun muss, ist die Operation Nummer und Anzahl der Ziffern zu form2 zu kommunizieren, wo die Fragen generiert und angezeigt werden.
Hier ist mein Code für form1 bisher:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FinalProject
{
public partial class Form1 : Form
{
public static int operation = 0;
public static int digits = 0;
public Form1()
{
InitializeComponent();
}
// this is to make sure only one box is checked for both selections. Starts here
private void label1_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
}
private void MulCB_CheckedChanged(object sender, EventArgs e)
{
if (MulCB.Checked == true)
{
operation = 1;
DivCB.Checked = false;
AddCB.Checked = false;
SubCB.Checked = false;
}
}
private void DivCB_CheckedChanged(object sender, EventArgs e)
{
if (DivCB.Checked == true)
{
operation = 2;
MulCB.Checked = false;
AddCB.Checked = false;
SubCB.Checked = false;
}
}
private void AddCB_CheckedChanged(object sender, EventArgs e)
{
if (AddCB.Checked == true)
{
operation = 3;
DivCB.Checked = false;
SubCB.Checked = false;
MulCB.Checked = false;
}
}
private void SubCB_CheckedChanged(object sender, EventArgs e)
{
if (SubCB.Checked == true)
{
operation = 4;
DivCB.Checked = false;
AddCB.Checked = false;
MulCB.Checked = false;
}
}
private void oneDCB_CheckedChanged(object sender, EventArgs e)
{
if(oneDCB.Checked == true)
{
digits = 1;
twoDCB.Checked = false;
threeDCB.Checked = false;
}
}
private void twoDCB_CheckedChanged(object sender, EventArgs e)
{
if (twoDCB.Checked == true)
{
digits = 2;
oneDCB.Checked = false;
threeDCB.Checked = false;
}
}
private void threeDCB_CheckedChanged(object sender, EventArgs e)
{
if (threeDCB.Checked == true)
{
digits = 3;
oneDCB.Checked = false;
twoDCB.Checked = false;
}
}
private void button8_Click(object sender, EventArgs e)
{
// operations: 1. (*) 2. (/) 3. (+) 4. (-)
// digits are as number indicates.
// Second window popup.
Form2 settingsForm = new Form2();
settingsForm.Show();
}
}
}
Hier ist form2, so ziemlich nackt.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FinalProject
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void FinishedBtn_Click(object sender, EventArgs e)
{
}
}
}
Hallo Sal! Können Sie bitte Ihre Frage bearbeiten: 1. enthalten viel weniger Code, 2. sagen, was Sie versucht haben, was hat und nicht funktioniert hat, und 3. sagen Sie konkret, welche Informationen Sie senden/erhalten möchten und was Sie speziell Hilfe benötigen mit? Auch denke ich, dass @DourHighArch wohl Recht hat, dass diese Frage ein Duplikat ist. –
Wenn Sie möchten, können Sie in der [Hilfe] (https://stackoverflow.com/help/how-to-ask) nach Tipps suchen, wie Sie eine geeignetere Frage für SO stellen können. Viel Glück und danke! –
Sie setzen die Variablen in die falsche Form. 'public static int operation = 0; public static int digits = 0; 'sollen in form2 sein, nicht 1. Sie sind Eigenschaften des Formulars, das nach dem Aufruf einer neuen Instanz gesetzt werden kann (zB' Form2 settingsForm = new Form2(); ' – rudib