数値型セル(NumericUpDownCell)でスピンボタンを非表示にするには、NumericUpDownCell.ShowSpinButtonプロパティをNotShownに設定します。この設定は、セルが非編集時の場合のみに有効です。
セルの編集時にもスピンボタンを非表示にするには、NumericUpDownCell.ShowSpinButtonInEditStateプロパティをFalseに設定する必要があります。ShowSpinButtonInEditStateプロパティは、ShowSpinButtonプロパティがNotShownに設定されている場合のみ有効です。
サンプルコード
Imports GrapeCity.Win.MultiRow Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim NumericUpDownCell1 As New NumericUpDownCell() NumericUpDownCell1.ShowSpinButton = CellButtonVisibility.NotShown NumericUpDownCell1.ShowSpinButtonInEditState = False GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {NumericUpDownCell1}) End Sub
using GrapeCity.Win.MultiRow; private void Form1_Load(object sender, EventArgs e) { NumericUpDownCell numericUpDownCell1 = new NumericUpDownCell(); numericUpDownCell1.ShowSpinButton = CellButtonVisibility.NotShown; numericUpDownCell1.ShowSpinButtonInEditState = false; gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { numericUpDownCell1 }); }
ユーザー定義セルでの実現
以下のように、NumericUpDownCellがセル編集コントロールを表示する際に、スピンボタンが表示されないように位置を調整したユーザー定義型セルでも実現できます。
NumericCellクラスのコード
次のコードは、NumericUpDownCellを継承するユーザー定義型セルNumericCellです。
Imports System.Drawing Imports System.Windows.Forms Imports GrapeCity.Win.MultiRow ' スピンボタンを表示しない NumericUpDownCell Public Class NumericCell Inherits NumericUpDownCell Public Sub New() Me.ShowSpinButton = CellButtonVisibility.NotShown End Sub Protected Overrides Function GetEditingControlBounds(ByVal cellBounds As System.Drawing.Rectangle, ByVal rowIndex As Integer) As System.Drawing.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; // スピンボタンを表示しない NumericUpDownCell public class NumericCell : NumericUpDownCell { public NumericCell() { this.ShowSpinButton = CellButtonVisibility.NotShown; } protected override Rectangle GetEditingControlBounds(Rectangle cellBounds, int rowIndex) { return new Rectangle(cellBounds.Location, new Size(cellBounds.Width + SystemInformation.VerticalScrollBarWidth, cellBounds.Height)); } }
デザイナによる設定
デザイナでNumericCellを使用するには、次のように操作します。
- 上記のコードをNumericCell.vbまたはNumericCell.csとしてファイルに保存する。
- ファイルをプロジェクトに追加する。
- プロジェクトをビルドする。
- テンプレートデザイナを開く。
- ツールボックスから"NumericCell"を選択し、ドラッグしてデザイナに配置する。
コーディングによる設定
Imports GrapeCity.Win.MultiRow Dim numericCell1 As New NumericCell() GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() { numericCell1 }) GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow; NumericCell numericCell1 = new NumericCell(); gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { numericCell1 }); gcMultiRow1.RowCount = 10;