PowerTools MultiRow for Windows Forms 8.0J
DropDownItemNeeded イベント
使用例 

DropDownItemが必要になると発生します。
構文
Public Event DropDownItemNeeded As EventHandler(Of DropDownItemNeededEventArgs)
public event EventHandler<DropDownItemNeededEventArgs> DropDownItemNeeded
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、DropDownItemNeededEventArgs 型の引数を受け取りました。次の DropDownItemNeededEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
DropDownCustomFilterItemカスタムのDropDownCustomFilterItemを取得または設定します。  
FilterValueフィルタ値を取得します。  
Handled System.ComponentModel.HandledEventArgsから継承されます。
解説
このイベントは、各フィルタ値のDropDownCustomFilterItemをカスタマイズする場合に使用します。これを使用すると、指定したテキストやイメージなどを持つ独自のフィルタ項目を作成できます。
使用例
次のサンプルコードは、このイベントを使用して自動フィルタ項目の項目をカスタマイズする方法を示します。このサンプルコードは、DropDownListプロパティに示されている詳細なコード例の一部を抜粋したものです。
void setThirdColumnDropDownListButton_Click(object sender, EventArgs e)
{
    // Create a header drop down list without default down down items.
    HeaderDropDownList headerDropDownList = new HeaderDropDownList();

    DropDownItemCollection dropDownItemCollection = headerDropDownList.Items;

    // Initialize drop down items manually.
    // Add show all item.
    dropDownItemCollection.Add(new DropDownShowAllFilterItem());

    DropDownAutoFilterItem autoFilterItem = new DropDownAutoFilterItem();

    autoFilterItem.DropDownItemNeeded += new EventHandler<DropDownItemNeededEventArgs>(autoFilterItem_DropDownItemNeeded);

    // custom range item.
    dropDownItemCollection.Add(autoFilterItem);

    // Get second column header cell.
    ColumnHeaderCell columnHeaderCell = this.gcMultiRow1.ColumnHeaders[0][2] as ColumnHeaderCell;
    columnHeaderCell.DropDownList = headerDropDownList;
}

void autoFilterItem_DropDownItemNeeded(object sender, DropDownItemNeededEventArgs e)
{
    int filterValue = int.Parse(e.FilterValue.ToString());

    e.DropDownCustomFilterItem = new AutoRangeFilterItem(filterValue / 100);

    e.Handled = true;
}

public class AutoRangeFilterItem : DropDownCustomFilterItem
{
    public AutoRangeFilterItem(int filterValue)
        : base(filterValue)
    {

    }

    public override string Text
    {
        get
        {
            return ((int)FilterValue * 100).ToString() + " to " + (((int)FilterValue + 1) * 100).ToString();
        }
        set { }
    }

    protected override bool Check(object value)
    {
        // check the value whether in specific range.
        int checkedValue = int.Parse(value.ToString());

        return (checkedValue >= ((int)FilterValue * 100) && checkedValue <= (((int)FilterValue + 1) * 100));
    }
}
Private Sub setThirdColumnDropDownListButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles setThirdColumnDropDownListButton.Click
    ' Create a header drop down list without default down down items.
    Dim headerDropDownList As New HeaderDropDownList()

    Dim dropDownItemCollection As DropDownItemCollection = headerDropDownList.Items

    ' Initialize drop down items manually.
    ' Add show all item.
    dropDownItemCollection.Add(New DropDownShowAllFilterItem())

    Dim autoFilterItem As New DropDownAutoFilterItem()

    AddHandler autoFilterItem.DropDownItemNeeded, AddressOf autoFilterItem_DropDownItemNeeded

    ' custom range item.
    dropDownItemCollection.Add(autoFilterItem)

    ' Get second column header cell.
    Dim columnHeaderCell As ColumnHeaderCell = TryCast(Me.gcMultiRow1.ColumnHeaders(0)(2), ColumnHeaderCell)
    columnHeaderCell.DropDownList = headerDropDownList
End Sub

Private Sub autoFilterItem_DropDownItemNeeded(ByVal sender As Object, ByVal e As DropDownItemNeededEventArgs)
    Dim filterValue As Integer = Integer.Parse(e.FilterValue.ToString())

    e.DropDownCustomFilterItem = New AutoRangeFilterItem(filterValue / 100)

    e.Handled = True
End Sub

Public Class AutoRangeFilterItem
    Inherits DropDownCustomFilterItem
    Public Sub New(ByVal filterValue As Integer)

        MyBase.New(filterValue)
    End Sub

    Public Overloads Overrides Property Text() As String
        Get
            Return (DirectCast(FilterValue, Integer) * 100).ToString() + " to " + ((DirectCast(FilterValue, Integer) + 1) * 100).ToString()
        End Get
        Set(ByVal value As String)
        End Set
    End Property

    Protected Overloads Overrides Function Check(ByVal value As Object) As Boolean
        ' check the value whether in specific range.
        Dim checkedValue As Integer = Integer.Parse(value.ToString())

        Return (checkedValue >= (DirectCast(FilterValue, Integer) * 100) AndAlso checkedValue <= ((DirectCast(FilterValue, Integer) + 1) * 100))
    End Function
End Class
参照

DropDownAutoFilterItem クラス
DropDownAutoFilterItem メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.