這種情況總是有趣的,因爲我們不知道你有什麼與否已覆蓋類。所以根據我上面提到的上面的註釋,你給出了相互矛盾的答案,我將假設Form1正在Form1的構造函數中創建。 您將需要某種方法來確定哪些組合框被選中,我只是XOR二進制值,正如我在我的評論中所說的那樣,我將用ShowDialog啓動Form2並查看返回值以確定它是否退出或繼續。我會給你一個快速和骯髒的例子,它是由你來充實。如果不是這種情況下,你將需要發佈更多一點代碼
Form1中
public partial class Form1 : Form
{
char[] operators;
public Form1()
{
InitializeComponent();
Form2 frm2 = new Form2();
if (frm2.ShowDialog() == DialogResult.OK) //Check for DialogResult Here
{
operators = CreateArray(frm2.GetOperators); // Get ComboBox Values from Form2 and Process them
frm2.Close(); // Close Form2
}
else
Application.Exit(); // If DialogResult is not OK then exit Form
}
private char[] CreateArray(int value)
{
string num = "";
if ((value & 1) == 1)
num += "+";
if ((value & 2) == 2)
num += "-";
if ((value & 4) == 4)
num += "*";
if ((value & 8) == 8)
num += "/";
if ((value & 16) == 16)
num += "%";
return num.ToCharArray();
}
}
窗體2
public partial class Form2 : Form
{
int operators;
public Form2()
{
InitializeComponent();
}
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
//Method that I used for determining CheckBox State. You can use a boolean array or an Enumeration ....
if (cb.Text == "Addition")
operators = operators^1;
else if (cb.Text == "Subtraction")
operators = operators^2;
else if (cb.Text == "Multiplication")
operators = operators^4;
else if (cb.Text == "Division")
operators = operators^8;
else if (cb.Text == "Modulus")
operators = operators^16;
}
public int GetOperators //Property for return value to Form1
{
get { return operators; }
}
}
你嘗試過什麼?我們希望看到一些嘗試使用代碼來了解您的思維過程。這也使問題更「回答友好」。另外,你想在數組中放置什麼值? – apnorton
我已發表我的密碼在desription先生/女士。 –
這就是問題所在,我不知道我會怎麼做才能生成角色。我可以很容易地輸入它們,但是我的form2上有一個複選框,所以如果添加(複選框)被選中,只有當我按下form1上的按鈕時,它纔會顯示'+'。 –