我有4个错误,我正在处理我的保存按钮,如果我可以修复它,它只会保存用户想要的所选项目
这不是所有代码只是我遇到问题的代码。这个程序适用于冰淇淋应用,有2个组合框和3个复选框
我提出了错误的地方
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(
new FileStream(sfd.FileName,
FileMode.Create,
FileAccess.Write)
);
if(flavorBox) // i have an error right here (Cannot implicitly convert type 'System.Windows.Forms.ComboBox' to 'boolean)
{
sw.WriteLine(flavorBox.SelectedItem);
}
else(syrupBox) //syays i need semecolons right here for some reason
{
sw.WriteLine(syrupBox.SelectedItem);
}
if (Nuts.Checked)
{
this.Tag = "checked";
sw.WriteLine(Nuts);
}
else(Cherries.Checked) //says i need semicolons here to i dont know why
{
this.Tag = "checked";
sw.WriteLine(Cherries);
}
if(Sprinkles.Checked)
{
this.Tag = "checked";
sw.WriteLine(Sprinkles);
}
sw.Close();
}
}
这是我的第4个错误
private void closeToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("Are you sure you want to send the data back?",
"Data Sender",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning);
if (result == DialogResult.No)
{
e.Cancel() = true; //ITS ASKED ME AM I MISSING A DIRECTIVE OR ASSEMBLY REFRENCE (FOR CANCEL)
}
答案 0 :(得分:2)
在if-else中只有if应该有条件,而else不应该有。使用else if语句显式定义条件。
if (Nuts.Checked)
{
this.Tag = "checked";
sw.WriteLine(Nuts);
}
else if(Cherries.Checked)
{
this.Tag = "checked";
sw.WriteLine(Cherries);
}
else if(Sprinkles.Checked)
{
this.Tag = "checked";
sw.WriteLine(Sprinkles);
}
Flavorbox是一个文本框,所以通过if(flavorbox)来检查flavorbox是否等于true或false。这是一个文本框,所以这是不可能的。您可能只需更改香精盒即可。请尝试以下方法:
if(!String.IsNullOrEmpty(flavorbox.Text)) {
sw.WriteLine(flavorBox.SelectedItem);
}
答案 1 :(得分:0)
1。关于
if(flavorBox)
你正在检查什么?
关于:
else(syrupBox)
和else(Cherries.Checked)
你做不到else(something)
。
你可以做else if(something)
因为else
是所有其他选项。
所以将它们改为:
else if(syrupBox)
和else if(Cherries.Checked)
2。: 你想做什么?
当您在对话框中单击否时,您想要使用e.cancel
完成什么?
答案 2 :(得分:0)
对于第四个错误,请注意EventArgs.Cancel
是属性,而不是方法。删除括号:
e.Cancel = true;