如何在表单加载后选中或取消选中复选框时启用按钮?

时间:2016-04-02 15:13:40

标签: c# winforms listview

我有一些功能,我想要的是当任何状态的复选框将被更改时启用按钮,但只有在表单加载后我的意思是当有人手动执行时我在列表视图上有一些检查和取消选中框

public Form1()
    {
        InitializeComponent();
        listView1.View = View.Details;
        listView1.FullRowSelect = true;
        listView1.Columns.Add("A Name", 180);
        listView1.Columns.Add("B", 260);
        listView1.Columns.Add("C", 80);
        listView1.Columns.Add("D", 100);
        ListPrograms();


        foreach(ListViewItem theItem in listView1.Items)
        {
            if (theItem.Checked == true)
            {
                theItem.ForeColor = Color.White;


            }
        }

        //CreateMyListView();
        button1.Enabled = false;
    }
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
    {
        ListViewItem l = listView1.Items[e.Index];

        //Display message
        if (e.NewValue == CheckState.Checked)
        {
            MessageBox.Show(l.Text + " was just checked.");
            button1.Enabled = true;

        }


        else if (e.NewValue == CheckState.Unchecked)
        {
            MessageBox.Show(l.Text + " was just unchecked.");
            button1.Enabled = true;
        }

    }

3 个答案:

答案 0 :(得分:0)

如果加载过程已经完成,你可以尝试设置一个bool,只做一些事情,如果该值为真

bool loadingDone = false;

在Form_Load()的末尾,写下

loadingDone = true;

在复选框更改事件中,写下

if (loadingDone) { DoSomething() }

答案 1 :(得分:0)

初始化后,我们必须调用我们需要的所有函数,然后我们必须添加此表单load ..

private void Form1_Load(object sender, EventArgs e)
{
    button1.Enabled = false;
}

答案 2 :(得分:0)

您可以使用已启用或更改按钮的背面颜色..

像这样。

        button1.Enabled = true;
        button1.BackColor = Color.Red;