我的消息不会显示在我的文本框上

本文关键字:我的 文本 显示 消息 | 更新日期: 2023-09-27 17:51:10

我试图填写表单(电影信息,如标题,年份和类型),然后在文本框中显示它(enable=false)。我有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;
        }
    }

MainForm:

        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();
        }
    }

我做错了什么

我的消息不会显示在我的文本框上

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

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

你需要给变量赋值而不是给控件赋值…,修改

        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;
        }