我也在使用Streamwriter和StreamReader
我还有2个组合框,我使用索引来处理作家/读者
但我的复选框无法工作我正在使用如果ele,如果复选框和im out of ideas语法的语句是正确的,据我所知(如果另一种方式让我的复选框读取和写入让我知道)为了让这项工作成为一种难以理解的方法,请让我知道
由于某些原因我在调试器中没有错误
这是我的负担按钮//(这就是我遇到问题的地方)
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
StreamReader sr;
string strInput;
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
sr = new StreamReader(ofd.FileName);
strInput = sr.ReadLine();
savedIndex = Convert.ToInt32(strInput);
flavorBox.SelectedIndex = savedIndex;
syrupBox.SelectedIndex = savedIndex;
if (Nuts.Checked == true)
{
sr.ReadLine();
}
else if(Cherries.Checked == true)
{
sr.ReadLine();
}
if(Sprinkles.Checked == true)
{
sr.ReadLine();
}
sr.Close();
}
}
这是我保存的按钮(此处我必须丢失某些东西)
public partial class Form1 : Form
{
int savedIndex = 0;
public Form1()
{
//index for flavor of icecream
InitializeComponent();
flavorBox.SelectedIndex = 0;
syrupBox.SelectedIndex = 0;
pictureBox1.Image = Properties.Resources.Vanilla;
//Nuts.
}
// my save fucntion
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
StreamWriter sw;
SaveFileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog() == DialogResult.OK)
{
sw = new StreamWriter(sfd.FileName);
savedIndex = flavorBox.SelectedIndex;
sw.WriteLine(flavorBox.SelectedIndex);
if (Nuts.Checked == true)
{
sw.WriteLine();
}
else if (Cherries.Checked == true)
{
sw.WriteLine();
}
else if(Sprinkles.Checked == true)
{
sw.WriteLine();
}
sw.Close();
}
}
这是我的REVERT按钮,用户可以打开已保存的文件,然后进行更改并且只需单击REVERT,它将返回其原始保存的文件而无需重新打开文件
private void revertToolStripMenuItem_Click(object sender, EventArgs e)
{
flavorBox.SelectedIndex = savedIndex;
syrupBox.SelectedIndex = savedIndex;
}
这是我对COMBO BOX的指数
private void flavorBox_SelectedIndexChanged(object sender, EventArgs e)
{
int index = flavorBox.SelectedIndex;
if (index == 0)
{
pictureBox1.Image = Properties.Resources.Vanilla;
}
else if (index == 1)
{
pictureBox1.Image = Properties.Resources.Chocolate;
}
else if (index == 2)
{
pictureBox1.Image = Properties.Resources.strawberry;
}
}
这是我的实际想法,试图让支票箱工作
private void Nuts_CheckedChanged(object sender, EventArgs e)
{
if(Nuts.Checked == true)
{
Nuts.Checked = true;
}
else if(Nuts.Checked != true)
{
//Nuts.unchecked()
}
答案 0 :(得分:0)
我会告诉你我所看到的,还没有读完所有内容,但我看到你正在使用 否则,如果使用其他情况,通常只使用其中一个语句(如果第一个是真的话,它只会做第一个而不是其他语句)。
现在如果你已经知道了, 语法方面,当你使用else时,你需要使用else:
if (..)
{
}
else if (..)
{
}
else
{
}
这是错误的:
if (Nuts.Checked == true)
{
sw.WriteLine();
}
else if (Cherries.Checked == true)
{
sw.WriteLine();
}
else if(Sprinkles.Checked == true)
{
sw.WriteLine();
}
此外,您可以删除" == true"从你的语句开始,如果Sprinkles.Checked返回true,你就不必将它与true进行比较就知道它是真的,如果(Sprinkles.Checked)只有在它是真的时才会起作用。
此代码:
if(Nuts.Checked == true)
{
Nuts.Checked = true;
}
else if(Nuts.Checked != true)
{
//Nuts.unchecked()
}
应该是:
if(..)
{
}
else
{
}
由于只有2种情况可以使用,如果选中,则为true,否则为false。 (如果是真的 - >做blablabla,否则(它是假的) - >做其他事情。)