日付型セル(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を使用するには、次のように操作します。
- 上記のコードをDateCell.vbまたはDateCell.csとしてファイルに保存する。
- ファイルをプロジェクトに追加する。
- プロジェクトをビルドする。
- テンプレートデザイナを開く。
- ツールボックスから"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;