当記事では、VisualStudioのコントロールを自分好みにカスタマイズする方法を紹介します。
難しく思うかもしれませんが、普通のクラスと変わりありません。
VisualStudioでGUI操作に慣れていると忘れてしまいがちですが、すべてプログラムで作られているためコントロールの変更も普通にできちゃうんです。
デザイン作成時に、ツールボックスを使用していると思います。
TextBox、Label、DataGridViewなどです。
このツールボックスに存在しているものを今回ではコントロールと呼んでいます。
これらにあるものは、全てカスタマイズが可能です。
基本的な使い方は下記となります。
DataGridViewの使い方
今回の例では、Enterキーが押されたときに、Tabキーと同じ動作をするようカスタマイズしています。
まず、クラスを追加します。
今回の例では「DataGridViewEx.vb」という名前で保存しています。
追加したクラスのコードを以下のようにします。
Imports System
Imports System.Windows.Forms
''' <summary>
''' Enterキーが押された時に、Tabキーが押されたのと同じ動作をする
''' (現在のセルを隣のセルに移動する)DataGridView
''' </summary>
Public Class DataGridViewEx
Inherits DataGridView
<System.Security.Permissions.UIPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, _
Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean
If (keyData And Keys.KeyCode) = Keys.Enter Then
Return Me.ProcessTabKey(keyData)
End If
Return MyBase.ProcessDialogKey(keyData)
End Function
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, _
Flags:=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Protected Overrides Function ProcessDataGridViewKey(ByVal e As KeyEventArgs) As Boolean
If e.KeyCode = Keys.Enter Then
Return Me.ProcessTabKey(e.KeyCode)
End If
Return MyBase.ProcessDataGridViewKey(e)
End Function
End Class
[ツールボックス]のコンポーネントに、先ほど作ったDataGridViewExが追加されています。
通常のコントロールと同様に使用することができるので、ドラッグして配置してご使用ください。