如何在新类中使用Form1中的静态方法?

时间:2013-08-06 04:48:27

标签: c# winforms

在顶部的Form1中,我在构造函数中添加了一个bool变量,将其设置为false。 然后在按钮单击事件中我将其设置为true:

private void DriverVerifier_Click(object sender, EventArgs e)
        {

            if (MessageBox.Show("Are you Sure you want to Launch the Driver Verifier. Click Yes to Confirm and No to continue", "WinForm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                verifier = false;
            }
            else
            {
                verifier = true;
                verifiers(verifier);
                ProcessRun.Processing(Environment.SystemDirectory, "verifier.exe", "", false, "");
            }

        }

然后在底部我创建了验证方法:

public static bool verifiers(bool verify)
        {

            return verify;
        }

然后在新课程中我做了:

if (Form1.verifiers(
   System.Threading.Thread.Sleep(500);
   SetForegroundWindow(proc.MainWindowHandle);

但是当我在新类中执行Form1.verifiers时,它要求一个bool变量。 我想要做的只是检查form1验证器中的方法是真还是假。

我现在该怎么办?

3 个答案:

答案 0 :(得分:0)

verifiers方法需要bool参数,因此您必须提供一个参数:

bool verifier = true;
if (Form1.verifiers(verifier))
{
    System.Threading.Thread.Sleep(500);
    SetForegroundWindow(proc.MainWindowHandle);
}

重写它,以便它不接受任何参数或提供无参数的重载:

public static bool verifiers()
{
    ...
    return verify;
}

...

if (Form1.verifiers())
{
    System.Threading.Thread.Sleep(500);
    SetForegroundWindow(proc.MainWindowHandle);
}

答案 1 :(得分:0)

一件简单的事情......我们可以通过引用类名

来使用静态方法

所以如果你创建一个静态方法验证器

的新类,我会优先考虑

然后您可以通过Class1.Verifier()

从您的应用程序中调用它

通过将它放在另一个类中,您将获得更改方法行为而无需更改Form1类的优势

我认为这可以帮助您放置方法并以propr方式使用它...

答案 2 :(得分:0)

我认为

if (Form1.verifiers(
   System.Threading.Thread.Sleep(500);
   SetForegroundWindow(proc.MainWindowHandle);

本来应该是:

if (Form1.verifiers())
{
   System.Threading.Thread.Sleep(500);
   SetForegroundWindow(proc.MainWindowHandle);
}

在这种情况下,您需要将静态方法的构造函数更改为:

public static bool verifiers()