我有一个显示SQL数据库清单的treenode。我有一种获取所选工作流程的方法。
如果选中复选框,我想启用运行按钮,如果没有选中任何内容并且正在加载,则禁用该按钮。
我不知道在哪里放这个if语句。我已经尝试将它放在点击操作的运行按钮下,但它无法正常工作。
感谢任何帮助。
List<WorkflowViewModel> workflowViewList = new List<WorkflowViewModel();
var workflowList = GetSelectedWrokflows();
if (workflowList.Count == 0)
{
button.enabled = false;
}
else
{
button.enabled = true;
}
答案 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...
}