-2

在顶部的 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 验证器的方法是真还是假。

我现在该怎么办 ?

4

3 回答 3

0

一件简单的事情..我们可以通过类名引用它来使用静态方法

因此,如果您创建一个具有静态方法 Verifier 的新类,我会更喜欢

然后您可以通过 Class1.Verifier() 从您的应用程序中调用它

通过将它放在另一个类中,您将获得在不更改 Form1 类的情况下更改方法行为的优势

我认为这将帮助您提出您的方法并以适当的方式使用它......

于 2013-08-06T04:58:03.167 回答
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()
于 2013-08-06T05:35:15.190 回答
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);
}
于 2013-08-06T04:53:52.020 回答