MESCIUS MultiRow for Windows Forms 12.0J
ドロップダウンボタンの非表示


日付型セル(DateTimePickerCell)でドロップダウンボタンを非表示にするには、DateTimePickerCell.ShowDropDownButtonプロパティをNotShownに設定し、DateTimePickerCell.ShowUpDownプロパティをTrueに変更します。この結果、セルの編集時にはドロップダウンボタンに代わりにスピンボタンが表示されるため、スピンボタンが表示されないようにShowSpinButtonInEditStateプロパティをFalseに設定します。
サンプルコード
Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim DateTimePickerCell1 As New DateTimePickerCell()
    DateTimePickerCell1.ShowDropDownButton = CellButtonVisibility.NotShown
    DateTimePickerCell1.ShowUpDown = True
    DateTimePickerCell1.ShowSpinButtonInEditState = False

    GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {DateTimePickerCell1})
End Sub
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    DateTimePickerCell dateTimePickerCell1 = new DateTimePickerCell();
    dateTimePickerCell1.ShowDropDownButton = CellButtonVisibility.NotShown;
    dateTimePickerCell1.ShowUpDown = true;
    dateTimePickerCell1.ShowSpinButtonInEditState = false;

    gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { dateTimePickerCell1 });
}
ユーザー定義セルでの実現
以下のように、DateTimePickerCellがセル編集コントロールを表示する際に、スピンボタンが表示されないように位置を調整したユーザー定義型セルでも実現できます。
DateCellクラスのコード
次のコードは、DateTimePickerCellを継承するユーザー定義型セルDateCellです。
Imports GrapeCity.Win.MultiRow

Public Class DateCell
    Inherits DateTimePickerCell

    Public Sub New()
        Me.ShowDropDownButton = CellButtonVisibility.NotShown
        Me.ShowUpDown = True
    End Sub

    Protected Overrides Function GetEditingControlBounds(ByVal cellBounds As Rectangle, ByVal rowIndex As Integer) As Rectangle
        Return New Rectangle(cellBounds.Location, New Size(cellBounds.Width + SystemInformation.VerticalScrollBarWidth, cellBounds.Height))
    End Function

End Class
using System.Drawing;
using System.Windows.Forms;
using GrapeCity.Win.MultiRow;

public class DateCell : DateTimePickerCell
{
    public DateCell()
    {
        this.ShowDropDownButton = CellButtonVisibility.NotShown;
        this.ShowUpDown = true;
    }

    protected override Rectangle GetEditingControlBounds(Rectangle cellBounds, int rowIndex)
    {
        return new Rectangle(cellBounds.Location, new Size(cellBounds.Width + SystemInformation.VerticalScrollBarWidth, cellBounds.Height));
    }
}
デザイナによる設定
デザイナでDateCellを使用するには、次のように操作します。
  1. 上記のコードをDateCell.vbまたはDateCell.csとしてファイルに保存する。
  2. ファイルをプロジェクトに追加する。
  3. プロジェクトをビルドする。
  4. テンプレートデザイナを開く。
  5. ツールボックスから"DateCell"を選択し、ドラッグしてデザイナに配置する。
コーディングによる設定
Imports GrapeCity.Win.MultiRow

Dim dateCell1 As New DateCell()

GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() { dateCell1 })
GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow;

DateCell dateCell1 = new DateCell();

gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { dateCell1 });
gcMultiRow1.RowCount = 10;

   
関連トピック

 

 


© MESCIUS inc. All rights reserved.