2

私はこのようなコードをたくさん持っています、そしてそれは通常うまくいきます

private void button_Click(object sender, EventArgs e)
{
    try
    {
        DialogResult result;
        result = MessageBox.Show( "Questa operazione potrebbe richiedere alcuni minuti,\r\nsei sicuro di voler continuare?", "Attenzione", MessageBoxButtons.YesNo, MessageBoxIcon.Warning );
        if ( result == System.Windows.Forms.DialogResult.Yes )
        {
            DoSomething();
        }
        else
        {
            DoSomethingElse();
        }
    }
    Catch (Exception ex)
    {
        LogExceptio(ex);
    }
} 

しかし、何らかの理由で特定Windows FormMessageBoxが表示されていません。押すEnterと、[はい]をクリックしたように続行します。キーを押すとALT、MessageBoxが魔法のように画面に表示されます。

何か案が?この問題を解決するにはどうすればよいですか?

4

3 に答える 3

2

メッセージ ボックスの所有者を指定してみてください (私が覚えている限りでは、その引数を含むオーバーロードされたメソッドが必要です)。所有者は、現在開いているウィンドウである必要があります。

于 2012-11-16T12:06:45.947 に答える
0

DataGrid.visible = false を設定することで、この問題を解決します。

private void button_Click(object sender, EventArgs e)
{
try
{
    DialogResult result;
    DataGrid.visible=false;
    result = MessageBox.Show( "Questa operazione potrebbe richiedere alcuni minuti,\r\nsei sicuro di voler continuare?", "Attenzione", MessageBoxButtons.YesNo, MessageBoxIcon.Warning );
    if ( result == System.Windows.Forms.DialogResult.Yes )
    {
        DoSomething();
    }
    else
    {
        DoSomethingElse();
    }
}
DataGrid.visible=true;
Catch (Exception ex)
{
    LogExceptio(ex);
}
} 
于 2016-09-26T14:53:44.423 に答える