Winforms C#禁用/启用Treenode上的按钮单击

时间:2017-05-31 19:34:54

标签: c# sql winforms button

我有一个显示SQL数据库清单的treenode。我有一种获取所选工作流程的方法。

如果选中复选框,我想启用运行按钮,如果没有选中任何内容并且正在加载,则禁用该按钮。

我不知道在哪里放这个if语句。我已经尝试将它放在点击操作的运行按钮下,但它无法正常工作。

感谢任何帮助。

List<WorkflowViewModel> workflowViewList = new List<WorkflowViewModel();

var workflowList = GetSelectedWrokflows();
if (workflowList.Count == 0)
{

    button.enabled = false;
}
else
{
    button.enabled = true;
}

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是创建一种方法,该方法将执行确定所选工作流程项目以及启用或禁用按钮的工作。通过将代码放在一个方法中,它允许您从多个位置调用它,如果您需要更改行为,则只有一个位置可以进行修改。

然后,您可以从Form_Load事件和已检查列表框的ItemCheck事件中调用此方法:

public partial class Form1 : Form
{
    List<WorkflowViewModel> workflowViewList = new List<WorkflowViewModel>();

    private void SetRunButtonState()
    {
        workflowViewList = GetSelectedWorkflows();
        button.Enabled = workflowViewList.Count > 0;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        SetRunButtonState();
    }

    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
    {
        SetRunButtonState();
    }

    // Rest of class code omitted...
}