GcMultiRowコントロールでは、標準のグリッドコントロールや一般的なアプリケーションと同じような操作が既定で有効になっています。ここでは、グリッドの操作を制限する際に注意しておくべき既定の設定について説明します。
既定の設定では、ユーザーが新規行の入力をとおして行を追加できます。この機能を無効にするには
GcMultiRow.AllowUserToAddRowsプロパティをFalseに設定します。
GcMultiRow1.AllowUserToAddRows = False
gcMultiRow1.AllowUserToAddRows = false;
既定の設定では、ユーザーが[Ctrl]+[Delete]の入力で行を削除できます。この機能を無効にするには
GcMultiRow.AllowUserToDeleteRowsプロパティをFalseに設定します。
GcMultiRow1.AllowUserToDeleteRows = False
gcMultiRow1.AllowUserToDeleteRows = false;
既定のショートカット キーの詳細は
ショートカット キー を参照してください。
既定の設定では、ユーザーがキーボードまたはマウス操作によってグリッドをズームできます。この機能を無効にするには
GcMultiRow.AllowUserToZoomプロパティをFalseに設定します。
GcMultiRow1.AllowUserToZoom = False
gcMultiRow1.AllowUserToZoom = false;
既定の設定では、ユーザーがキーボード操作によってセルの値をクリップボードにコピーできます。この機能を無効にするには
GcMultiRow.AllowClipboardプロパティをFalseに設定します。
GcMultiRow1.AllowClipboard = False
gcMultiRow1.AllowClipboard = false;
既定の設定では、各セルのセル編集コントロールにはクリップボード操作が提供されています。たとえば、TextBoxCellではTextBoxEditingControlによって編集中のクリップボード操作が有効です。これは、標準のTextBoxコントロールと同じです。
この機能を無効にするには次の操作を行います。
Imports GrapeCity.Win.MultiRow
Private Sub GcMultiRow1_EditingControlShowing(ByVal sender As System.Object, ByVal e As EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
If TypeOf e.Control Is TextBoxEditingControl Then
Dim textBoxEditingControl As TextBoxEditingControl = _
DirectCast(e.Control, TextBoxEditingControl)
' 空のコンテキストメニューで既定のメニューを無効にする
textBoxEditingControl.ContextMenu = New ContextMenu()
' キーボード操作によるクリップボード操作を無効にする
RemoveHandler textBoxEditingControl.KeyDown, AddressOf Me.textBoxEditingControl_KeyDown
AddHandler textBoxEditingControl.KeyDown, AddressOf Me.textBoxEditingControl_KeyDown
End If
End Sub
Private Sub textBoxEditingControl_KeyDown(ByVal sender As System.Object, ByVal e As KeyEventArgs)
Dim textBox As TextBox = DirectCast(sender, TextBox)
If e.Modifiers = Keys.Control Then
e.Handled = True
textBox.SelectionLength = 0
End If
End Sub
using GrapeCity.Win.MultiRow;
private void Form1_Load(object sender, EventArgs e)
{
gcMultiRow1.EditingControlShowing += new EventHandler<EditingControlShowingEventArgs>(gcMultiRow1_EditingControlShowing);
}
private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
if (e.Control is TextBoxEditingControl)
{
TextBoxEditingControl textBoxEditingControl = e.Control as TextBoxEditingControl;
// 空のコンテキストメニューで既定のメニューを無効にする
textBoxEditingControl.ContextMenu = new ContextMenu();
// キーボード操作によるクリップボード操作を無効にする
textBoxEditingControl.KeyDown -= new KeyEventHandler(textBoxEditingControl_KeyDown);
textBoxEditingControl.KeyDown += new KeyEventHandler(textBoxEditingControl_KeyDown);
}
}
private void textBoxEditingControl_KeyDown(object sender, KeyEventArgs e)
{
TextBox textBox = sender as TextBox;
if (e.Modifiers == Keys.Control)
{
e.Handled = true;
textBox.SelectionLength = 0;
}
}
TextBoxCellやDateTimePickerCellなどの編集可能なセル型では、既定でユーザーの入力が許可されています。この機能を無効にするには、次のいずれかの方法を使用します。
既定の設定では、HeaderCellとその派生クラス以外のセルは選択可能です。この機能を無効にするには、次のいずれかの方法を使用します。
既定の設定では、HeaderCellとその派生クラスによるセルのリサイズが許可されています。すべてのセルに対してユーザーによるリサイズ操作を無効にするには、
GcMultiRow.AllowUserToResizeプロパティをFalseに設定します。個々のセルでリサイズ操作を無効にするには、
Cell.ResizeModeプロパティの値を変更します。
既定の設定では、次のセル型に対してリサイズが許可されています。
- ColumnHeaderCell
- CornerHeaderCell
- RowHeaderCell
- HeaderCell
既定の設定では、ユーザーが[Ctrl]+[0]の入力でセルにnull(Visual BasicではNothing)を入力できます。この機能を無効にするには対応するショートカット キーを削除します。
GcMultiRow1.ShortcutKeyManager.Unregister(GrapeCity.Win.MultiRow.EditingActions.InputNullValue)
gcMultiRow1.ShortcutKeyManager.Unregister(GrapeCity.Win.MultiRow.EditingActions.InputNullValue);
列ヘッダ型セルの境界をダブルクリックしたとき、対応するセルの表示内容に合わせてセルの幅が自動調整されます。既定の設定では、対象となるセルは画面に表示されている部分に限定されます。すべてのセルを対象とするには、
GcMultiRow.AutoFitContentプロパティをAllに変更します。
GcMultiRow1.AutoFitContent = GrapeCity.Win.MultiRow.AutoFitContent.All
gcMultiRow1.AutoFitContent = GrapeCity.Win.MultiRow.AutoFitContent.All;
 |
- コントロールに大量のデータを読み込んでいる場合は、データ数に応じて処理時間が増大します。
|