0

私はループごとにWindowsフォームを開こうとしています。メソッドを呼び出してフォームを表示するたびに、画像ボックスが表示されず、完全に空白のフォームになります。これに対する修正はありますか?formshowメソッドを呼び出すこのループ内にある必要がありますが、他の場所で試してみましたが、フォームは完全に表示されますが、問題のある場所をデバッグするために配置した場所で正確に使用することはできません。お手伝いありがとう!私はC#を使用しています

public override bool OnNewFrame()
{
    for(uint i=0;;i++)
    {
        if (straightcalled == false)
        {
            if (checkform("Form4") == false)
            {
                straightcalled = true;
                showform();
            }
        }       
    }

    return (++newframes < 50000);
}

Form4 newform = new Form4();

private void showform()
{
    newform.Show();
    newform.WindowState = FormWindowState.Normal;
    newform.ShowInTaskbar = false;
    newform.TopMost = true;   
}
4

1 に答える 1

0

主な問題は、OnNewFrame メソッドに終了条件がないループだと思います。このループは単に CPU を消費しているだけで、何の価値も達成していないようです。

あなたの目標が何なのかわからないので、私はあなたの問題を解決しようとします。私は Intel の Perceptual Computing SDK を使用していないため、これは推測ですが、問題が解決しない場合でも正しい方向に導くのに役立つことを願っています. ダイアログを再利用する必要がある場合、またはダイアログをモードレスにする必要がある場合、これでは問題は解決しません。繰り返しますが、あなたの目標については不明ですが、うまくいけばこれが役に立ちます。

public override bool OnNewFrame()
{
    if (straightcalled == false)
    {
        if (checkform("Form4") == false)
        {
            straightcalled = true;
            showform();
        }
    }       

    return (++newframes < 50000);
}

private void showform()
{
    using (Form4 newForm = new Form4())
    {
        newform.ShowInTaskbar = false;
        newform.ShowDialog();
    }   
}
于 2013-07-16T03:55:17.840 に答える