新手到C#,在课堂上学习制作Windows窗体。在这里,我发现自己有一种情况。我有几个按钮,在特定条件下激活和停用。有没有办法创建一个函数,等待一个变量获得一些特定的值来actvate?例如,只要bool
成立,按钮就会激活,只要它变为假,它们就会停用。我想要一些帮助,或者一些tuto来学习(寻找一些,但没有找到我想要的东西)。
答案 0 :(得分:0)
有很多方法可以解决这个问题。
更高级的是通过INotifyPropertyChanged接口使用ChangeNotification。这个在MVVM模式下大量用于WPF / UWP。
但是,任何Command模式都可以正常工作。命令是抽象。命令可以与热键组合,按钮,菜单项,手势(如翻转yoru手机)或所有这些同时相关联。
ICommand接口定义了“canExecute”和“Execute”功能。您需要定期轮询canExecute以更新按钮状态。但是常规可以低至“每秒60次”或“仅当您明确要求更新”时。但是它很少使用,因为它是为不推荐的Windows RT运行时定义的。
答案 1 :(得分:0)
我发布了一个答案,因为其他的回答者看起来非常难或不可能。
使用名为property的c#功能非常容易。属性是围绕字段的getter和setter方法的语法糖。
在你的情况下,你想要这样的东西:
private bool _isActive;
public bool IsActive
{
get { return _isActive; }
set
{
_isActive = value;
if (value) // if the value assigned is true
{
someButton.IsEnabled = true; // enable a button, for example
}
}
}
然后,您可以像这样使用它:
public void SomeButtonClick(object sender, EventArgs e)
{
IsActive = true;
}
答案 2 :(得分:-1)
在您的舞台上,最适合您的解决方案如下:
if(FunctionWhichHasSomeCondition(SomeVariables)
{
if conditions met, activate or deactivate button.
}
..
public bool FunctionWhichHasSomeCondition(somevariable)
{
//Some conditions to be met. if met return true else return false.
}