MESCIUS MultiRow for Windows Forms 12.0J
スピンボタンの非表示


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

   
関連トピック

 

 


© MESCIUS inc. All rights reserved.