[障害情報] DataGridView を利用している場合に、処理応答が得られなくなる場合がある


Platform SDK (Windows SDK) サポートの平田です。本日は、System.Windows.Forms.DataGridView にて、応答が返ってこなくなってしまう問題についてご紹介いたします。本問題は製品の不具合による問題となります。

問題の概要

System.Windows.Forms.DataGridView を利用し、Edit を実施後フォーカスを外した場合に、応答が返らなくなる場合がございます。System.Windows.Forms.DataGridView
の規定では、拡張ウィンドウスタイルとして、WS_EX_CONTROLPARENT
が設定されておりません。WS_EX_CONTROLPARENT が設定されていないことに起因して、ウィンドウ内のコントロールを順次確認する内部処理において、次のコントロールを適切に見つけることができず、結果、WM_GETDLGCODE のメッセージの処理が繰り返し行われ、アプリケーションがハングいたします。

参考情報

Extended Window Styles

http://msdn.microsoft.com/ja-jp/library/61fe4bte.aspx

WS_EX_CONTROLPARENT   Allows the user to navigate among
the child windows of the window by using the TAB key.

タブキーにより、子ウィンドウ間を移動することを許可します

状況

マイクロソフトでは、この不具合を対象製品として記載されているマイクロソフト製品の不具合として認識しています。   

対処方法

System.Windows.Forms.DataGridView を継承したクラスを用意し、ControlStyles.ContainerControl
を設定します。

コード例

public class myDataGridView : System.Windows.Forms.DataGridView

{

    public

    myDataGridView()

        : base()

    {

       
this.SetStyle(ControlStyles.ContainerControl);

    }

}

対象製品

.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
.NET Framework 4.0
.NET Framework 4.5

弊社製品の不具合ですでにご迷惑をおかけしたお客様もいらっしゃるかと存じます。あらためて、心よりお詫び申し上げます。 

 


Skip to main content