0

我正在尝试填写表格(电影信息,例如标题、年份和类型),然后将其显示在文本框中(启用 = 假)。我有 2 个类和一个表单(带有 2 个文本框(用于用户输入)、2 个按钮、1 个用于注册电影信息,1 个用于在第三个文本框(禁用的那个)中显示信息。

class Movies
    {
        public string Title { get; set; }
        public int Year { get; set; }

        public string ReturnMovie()
        {
            return Title + " (" + Year.ToString() + ")";
        }
    }

class Genres
    {
        public string Genre { get; set; }

        public string ReturnGenre()
        {
            return Genre;
        }
    }

主窗体:

        bool btnRegisterClicked = false;

        Movies m1 = new Movies();
        Genres g1 = new Genres();

        private void btnRegister_Click(object sender, EventArgs e)
        {
            btnRegisterClicked = true;

            if (btnRegisterClicked == true)
            {
                if (txtTitle.Text.Length == 0)
                {
                    MessageBox.Show("Enter a title for the movie.");

                    btnRegisterClicked = false;
                }

                else if (txtYear.Text.Length < 4)
                {
                    MessageBox.Show("Enter a valid year.");

                    btnRegisterClicked = false;
                }

                else if (chkGenre.SelectedIndex == -1)
                {
                    MessageBox.Show("Select the genre(s) of the movie.");

                    btnRegisterClicked = false;
                }

                else
                {
                    txtTitle.Text = m1.Title;
                    txtYear.Text = m1.Year.ToString();
                    chkGenre.Text = g1.Genre;
                }

                txtTitle.Clear();
                txtYear.Clear();
                chkGenre.ClearSelected();
            }
        }

        private void btnShow_Click(object sender, EventArgs e)
        {
            txtShow.Text = m1.ReturnMovie() + g1.ReturnGenre();
        }
    }

我究竟做错了什么 ?

4

2 回答 2

5

else您块中的分配是向后的。您将 设置为andTextBox的未初始化内容,然后立即将它们删除。 m1g1.Clear()

else
{
    m1.Title = txtTitle.Text;
    m1.Year = int.Parse(txtYear.Text);
    g1.Genre = chkGenre.Text
}
于 2013-01-09T14:10:46.827 回答
2

您需要将值分配给变量而不是控件...,更改以下

        else
        {
            txtTitle.Text = m1.Title;
            txtYear.Text = m1.Year.ToString();
            chkGenre.Text = g1.Genre;
        }

        else
        {
            m1.Title = txtTitle.Text;
            m1.Year = int.Parse(txtYear.Text);
            g1.Genre = chkGenre.Text;
        }
于 2013-01-09T14:11:01.570 回答