我的复选框有问题,他们不会写或加载

时间:2016-03-31 22:42:40

标签: c# checkbox streamreader streamwriter

我有3个复选框 坚果 樱桃 洒

我也在使用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()
        }   

1 个答案:

答案 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,否则(它是假的) - >做其他事情。)