Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想调用一个在任何窗体加载时自动写入程序的方法_C#_Winforms - Fatal编程技术网

C# 我想调用一个在任何窗体加载时自动写入程序的方法

C# 我想调用一个在任何窗体加载时自动写入程序的方法,c#,winforms,C#,Winforms,请帮助我找到一个解决方案,以便在加载表单时自动调用方法。我想在每个表单中编写一段代码,用于为每个表单调用许可证验证。为了避免这种情况,我将该代码作为静态方法放在program.cs中,现在我想在不重新编写表单代码的情况下调用该方法。请在这个问题上帮助我。创建基类LicensedForm,它将提供以下功能: public class LicensedForm : Form { protected override void OnLoad(EventArgs e) {

请帮助我找到一个解决方案,以便在加载表单时自动调用方法。我想在每个表单中编写一段代码,用于为每个表单调用许可证验证。为了避免这种情况,我将该代码作为静态方法放在program.cs中,现在我想在不重新编写表单代码的情况下调用该方法。请在这个问题上帮助我。

创建基类
LicensedForm
,它将提供以下功能:

public class LicensedForm : Form
{
    protected override void OnLoad(EventArgs e)
    {
        // invoking a license validation here
        base.OnLoad(e);            
    }
}
从此基类继承其他表单,而不是
Form

public class MainForm : LicensedForm
{
   //...
}

您需要表单来处理
Load
事件。然后在EventHandler中运行许可证检查方法

您需要确保您的方法是
公共的
静态的
,才能访问它

private void MainForm_Load(object sender, EventArgs e)
{
      Program.CheckLicense();
}

如果您正在谈论windows窗体,那么这可能会对您有所帮助。从Form.Load()事件调用它如何?我知道我偏离了轨道,为什么您不授权用户使用web配置?或者是否可以在PreInit事件上验证许可证?