2016-06-29 4 views
1

私のコードでBeginInvoke()を実装しようとしていて、この部分をスローしてエラーになっていました。私のC#コードでエラーを出すBeginInvoke()

private void ShowPicLensPlot() 
     { 
      if (PicLensPlot.InvokeRequired) 
      { 
       PicLensPlot.BeginInvoke(new Action<Control, bool>(ShowPicLensPlot, PicLensPlot, true)); 
      } 
      else 
      { 
       PicLensPlot.BringToFront(); 
      } 
     } 

エラーがmethodNameに 上記ソースコードは、VBからのC#に変換され、オンラインツールがこれにに使用されたが期待されています。 PicLensPlotです。private System.Windows.Forms.PictureBox PicLensPlot;

+0

はい、これは間違っています。あなたは何をしたいですか? WPFとWinFormsの両方でタグ付けされているのはなぜですか?彼らの行動は異なっている。 – nvoigt

+0

WPFが削除されました。そのWinformアプリケーション。この問題を解決するにはどうすればよいですか? – Apoorv

答えて

1

これは動作するはずです:

if (PicLensPlot.InvokeRequired) 
{ 
    PicLensPlot.BeginInvoke(new Action(() => ShowPicLensPlot())); 
} 
else 
{ 
    PicLensPlot.BringToFront(); 
} 
+0

これは機能します。私はそれを試しましたが、なぜ私のコードが動作していないのか、そしてAction は何のためにあるのかを知りたいだけでしたか? – Apoorv

+0

BeginInvokeにはアクションデリゲートに引数を渡すことができるオーバーロードがあります。ただし、ShowPicLensPlotメソッドにはbool引数がないため、ここでは意味がありません。 – Clemens

関連する問題