2009-06-09 34 views

答えて

0

一つサードパーティのソリューションを使用することができます場合は、RescoのSmartGridを見ています。

9

他のポスターがコメントしたように、自分でロールする必要があります。幸いにも、これはそれほど難しいことではありません。

私のアプリケーションでは、特定の列に16x16のアイコンを描画する方法が必要でした。 DataGridColumnStyleから継承する新しいクラスを作成しました。DataGridTableStyleオブジェクトを使用してDataGridに簡単に適用できます。

class DataGridIconColumn : DataGridColumnStyle { 

public Icon ColumnIcon { 
    get; 
    set; 
} 

protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight) { 

    // Fill in background color 
    g.FillRectangle(backBrush, bounds); 

    // Draw the appropriate icon 
    if (this.ColumnIcon != null) { 
     g.DrawIcon(this.ColumnIcon, bounds.X, bounds.Y); 
    } 
    } 
} 

あなたは私が、私は、私はこのクラスの外に表示する必要があるアイコンを指定することができますパブリックプロパティColumnIconを定義していることがわかります。

、実際にデータグリッド上でそれを使用するために、次のようなスニペットがあるだろう:DataGridTableStyleを適用するための非常に単純な例です

DataGridTableStyle ts = new DataGridTableStyle(); 

DataGridIconColumn dgic = new DataGridIconColumn(); 
dgic.ColumnIcon = Properties.Resources.MyIcon; 
dgic.MappingName = "<your_column_name>"; 
dgic.HeaderText = "<your_column_header>"; 

ts.GridColumnStyles.Add(dgic); 

this.myDataGrid.TableStyles.Add(ts); 

を - 私は実際にはさらに多くのカスタマイズを行います私のDataGridの残りの列。しかし、それはあなたが何をしたいかを始める必要があります。

+0

私はセルに画像をロードする必要がある場合?どうすればいいのですか ? – user3383301