2009-03-07 8 views
0

C#WinFormsで拡張ListViewを作成しました。 WinAPIを使用して現在実行中のアプリケーションの一覧を表示するのが目的です。しかし、私はコンストラクタでListViewを実装しようとすると、私はアプリケーションを実行するときに動作しますが、VS 2008をクラッシュする任意のフォームにコントロールを配置しようとする場合。拡張ListViewをあらかじめ準備しておくと、どのメソッドやイベントを使用する必要がありますか?

私は信じられているThreadPoolを使用するか、P/Invoke呼び出しを使用します。私はDesignModeプロパティをチェックするために条件付きでラップしようとしましたが、コンストラクタで常にfalseが返されることがわかりました。 私の問題を解決するために、私はListView基本クラスのInitLayoutメソッドをオーバーライドし、そこに私の集団コードを入れましたが、これを置くのに最適な場所ではないと思います。

拡張リストビューに人口事前コードを配置する場所は誰にも分かりますか?

ありがとうございます!このデザインモードとアプリケーションの実行を区別するために

protected override void InitLayout() 
{ 
    if (DesignMode) 
     return; 

    RefreshApplications(); 

    base.InitLayout(); 
} 

答えて

2

用途:

if (LicenseManager.UsageMode != LicenseUsageMode.Designtime) 
{ 
} 
ここ

は修正は次のようになります。

関連する問題