using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
// ISelectionStrategyFilter インタフェースをクラスに実装します
// (この場合はフォームです)。
public class Form1 : System.Windows.Forms.Form, Infragistics.Win.ISelectionStrategyFilter
{
private MyCustomSelectionStrategy cellSelectionStrategy;
private void Form1_Load(object sender, System.EventArgs e)
{
// カスタムの選択方式を作成します。
this.cellSelectionStrategy = new MyCustomSelectionStrategy(this.ultraGrid1);
// グリッドの SelectionStrategyFilter プロパティを、ISelectionStrategyFilter インタフェースを
// 実装するオブジェクトに設定します。
this.ultraGrid1. SelectionStrategyFilter = this;
}
public Infragistics.Win.ISelectionStrategy
GetSelectionStrategy(Infragistics.Shared.ISelectableItem item)
{
// 項目がセルの場合はカスタム方式を返します。
if ( item is UltraGridCell )
return this.cellSelectionStrategy;
// nullを返します。この場合はグリッドによって適切な方式が提供されます。
return null;
}
// PLF で定義されている選択方式の 1 つから
// クラスを派生します。
internal class MyCustomSelectionStrategy : SelectionStrategyExtended
{
internal MyCustomSelectionStrategy( ISelectionManager manager )
: base( manager )
{
}
public override bool OnMouseDown(Infragistics.Shared.ISelectableItem item, ref Infragistics.Win.MouseMessageInfo msginfo)
{
// 何らかのカスタムのマウス ダウン処理を実行します。
// ...
return base.OnMouseDown( item, ref msginfo );
}
}