みるめも

【.NET】C#やVBで使う全コントロール一覧(サンプル画像付き)

【.NET】C#やVBで使う全コントロール一覧(サンプル画像付き)
みるみ
\ Follow Me! /
みるみ

ブロガー、エンジニア。

文章を書くのが好きです。

意外にも、C#やVBでWindows用デスクトップアプリケーションを作るときに使う「コントロール」の一覧が全然なかったのでまとめてみました。

間違い等あればコメントにてご指摘ください。

環境とか

  • Windows 10 Home 64bit
  • Visual Studio Community 2019 / ver16.4.3
  • .NET Framework / ver4.8.03752(コントロールリストの確認に使ったプロジェクトのターゲットverは4.7.2)

.NET(C#/VB)の全コントロール一覧

アルファベット順。ページ内検索するか にある目次の利用を推奨。

BackgroundWorker

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.BackgroundWorker

バックグラウンドで非同期処理を行うためのクラス。ダウンロードのような長い時間を必要とする処理を動かしつつ、UIの即時応答性は損ないたくない場合に便利。

BindingNavigator

bindingnavigator

クラス定義:System.Windows.Forms.ToolStrip.BindingNavigator

データバインディング先のデータを操作できるUIを表示する。BindingSourceとセットで利用するのが基本。

BindingSource

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.BindingSource

データとフォームを紐付け、片方の変更をもう一方にも反映させる仕組み(データバインディング)を利用するためのデータセット。

Button

クラス定義:System.Windows.Forms.ButtonBase.Button

あらゆる操作のトリガーになるWindows標準のボタンコントロール。最も利用機会が多いコントロールのひとつ。

CheckBox

checkbox

クラス定義:System.Windows.Forms.ButtonBase.CheckBox

条件変数として使用可能なトグルボタンとなるチェックボックス。Button、RadioButtonと並んで使用頻度が高い。

CheckedListBox

checkedlistbox

クラス定義:System.Windows.Forms.ListBox.CheckListBox

各項目の左側にチェックボックス付きで表示できるリスト。データの複数選択などの処理がある場合便利。ListBoxの継承クラス。

ColorDialog

colordialog

クラス定義:System.Windows.Forms.CommonDialog.ColorDialog

いつものWindows標準カラーピッカー。使い勝手はイマイチ。

ComboBox

combobox

クラス定義:System.Windows.Forms.ListControl.ComboBox

リストからユーザーが任意の値を選択できるコンボボックスを提供する。これも一般的なフォームコントロール。

ContextMenuStrip

dot-net-control-that-has-no-ui

クラス定義:System.Windows.Forms.ToolStripDropDownMenu.ContextMenuStrip

コンテキストメニュー、つまり右クリックメニューを実装するためのクラス。どのコントロール(Form)と紐付けるか指定するのを忘れないように。

DataGridView

datagridview

クラス定義:System.Windows.Forms.Control.DataGridView

自由に加工可能なデータ一覧をグリッド形式(表)で表示できるフォーム。やや複雑だが便利。

DataSet

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.MarshalByValueComponent.DataSet

アプリケーションがデータベースに常に接続しておかないようにする(非接続型モデル)ことを目的として、クライアント上で使用するデータをキャッシュとしてメモリに保管しておくためのクラス。主にADO.NETで使われる。

DateTimePicker

datetimepicker

クラス定義:System.Windows.Forms.Control.DateTimePicker

ユーザーが好きな日時を選択し、それを任意の書式で表示させるためのコントロール。

DirectoryEntry

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.DirectoryEntry

同じネットワーク上のデバイス(プリンタなど)やユーザーなど各種AD(アクティブ・ディレクトリ)ドメインを扱うときに使用する。WinNTをはじめとするADSIでデータの更新・読み取りなどにあたるような機能。

DirectorySearcher

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.DirectorySearcher

AD(アクティブ・ディレクトリ)に対してSQLのようなクエリを実行するためのクラス。名前の通りノードの探索に使う。

DomainUpDown

domainupdown

クラス定義:System.Windows.Forms.UpDownBase.DomainUpDown

文字列値を選択できるアップダウンコントロール(スピンボックス)を提供する。どちらかというとNumericUpDownで数値の上下をする方が一般的。

ErrorProvider

errorprovider

クラス定義:System.ComponentModel.Component.ErrorProvider

コントロールに対する入力エラーなどを通知するためのUI。各コントロール要素でエラー説明文字列などを定義しておくと、表示速度や点滅可否等の設定とともにアイコンを表示できる。

EventLog

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.EventLog

Windowsのイベントログへアクセスするための機能。EventLogクラスを使用するアプリケーションは管理者として実行する必要があることに留意する。

FileSystemWatcher

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.FileSystemWatcher

ファイルシステムの変更をウォッチし、ディレクトリやファイルの変更に気付くとそれをトリガーにしてイベントを発生させることができる。バッファオーバーランが起きやすい。

FlowLayoutPanel

flowlayoutpanel

クラス定義:System.Windows.Forms.Panel.FlowLayoutPanel

ウィンドウサイズなどに応じた動的なレイアウトが可能になるパネルインターフェース。非常に汎用性が高く、Webで言うレスポンシブデザインのようなニーズを満たせる機能。

FolderBrowserDialog

folderbrowserdialog

クラス定義:System.Windows.Forms.CommonDialog.FolderBrowserDialog

フォルダの選択ダイアログを表示させるためのクラス。「ファイルの選択」ではなく「フォルダの選択」専門であることに注意。

FontDialog

fontdialog

クラス定義:System.Windows.Forms.CommonDialog.FontDialog

ローカルにインストールされたフォント一覧を表示してユーザーに選択させるダイアログボックス。

GroupBox

groupbox

クラス定義:System.Windows.Forms.Control.GroupBox

コントロール要素をひとかたまりにグループ化するためのもの。ラジオボタンの論理グルーピングに使われるのが一般的。

HelpProvider

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.HelpProvider

コントロールに紐付けたヘルプ内容を表示するためのプロバイダ。オンラインヘルプ(.html)やWindowsの一般的なヘルプファイル(.chm)への参照を持つ。

HScrollBar

hscrollbar

クラス定義:System.Windows.Forms.ScrollBar.HScrollBar

Windows標準の水平スクロールバーを表示させる。

ImageList

imagelist

クラス定義:System.ComponentModel.Component.ImageList

ListViewやTreeViewの補助的なコントロールで、画像をリスト化できるようにするためのもの。アイコンが並ぶようなUIを作りたいときに使用する。

Label

label

クラス定義:System.Windows.Forms.Control.Label

フォーム上にテキストを表示させるための最もシンプルなコントロール。

LinkLabel

linklabel

クラス定義:System.Windows.Forms.Label.LinkLabel

Labelにハイパーリンクを付加したコントロール。ヘルプや作者サイト、Donate(寄付)ページなどのリンクを埋め込むのが一般的。

ListBox

listbox

クラス定義:System.Windows.Forms.ListControl.ListBox

リスト化された項目を表示するためのコントロール。リスト内の項目を検索する機能も実装可能。

ListView

listview

クラス定義:System.Windows.Forms.Control.ListView

データをリストで制御できるコントロール。簡易的なDBのような使い方が可能で、メソッドやプロパティもかなり豊富。

MaskedTextBox

maskedtextbox

クラス定義:System.Windows.Forms.TextBoxBase.MaskedTextBox

フォームへの入力に際してバリデーション的なことができるテキストボックス。他言語によくある「各用途に応じたクラス(フォーム)」ではなく、このMaskedTextBox内でプロパティを使い分けてバリデーション内容を変える。

MenuStrip

menustrip

クラス定義:System.Windows.Forms.ToolStrip.MenuStrip

フォーム、つまりウィンドウの上部メニューにあたる部分を定義するためのコントロール。一般的。

MessageQueue

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.MessageQueue

メッセージキューサーバーのキューにアクセスするときに使用するラッパー的な要素。作成したMessageQueueオブジェクトで実際のキューへアクセスし、溜まっている通信を送受信するなど制御できる。

MonthCalendar

monthcalendar

クラス定義:System.Windows.Forms.Control.MonthCalendar

月ごとのカレンダーを表示して日付を選択できるコントロール。

NotifyIcon

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.NotifyIcon

通知領域(タスクバー右下)に格納するときのアイコンを作成するコンポーネント。これ自体はUIを持たないので、ContextMenuStripなどと組み合わせて作成する。

NumericUpDown

numricupdown

クラス定義:System.Windows.Forms.UpDownBase.NumericUpDown

数値を上下させるスピンボックスを表示させる。これも一般的なコントロールのひとつ。

OpenFileDialog

openfiledialog

クラス定義:System.Windows.Forms.FileDialog.OpenFileDialog

「ファイルを開く」ダイアログボックス。用意されているプロパティを使用すれば開くファイルの拡張子を指定したりすることも可能。

PageSetupDialog

pagesetupdialog

クラス定義:System.Windows.Forms.CommonDialog.PageSetupDialog

印刷時の余白や用紙などの設定をするダイアログウィンドウ。利用するにはドキュメントに対してページ設定の初期化が必要。

Panel

panel

クラス定義:System.Windows.Forms.ScrollableControl.Panel

コントロールをグループ化するためのもののひとつ。GroupBoxとの違いはキャプションがないこと、境界線がデフォルトでは非表示であること、スクロールバーを利用できることなどが挙げられる。ラジオボタンの論理グルーピングももちろん可能。

PerformanceCounter

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.PerformanceCounter

Windows NTでパフォーマンスカウンターを表示するためのコンポーネント。使用後は型をDisposeする必要がある。

PictureBox

picturebox

クラス定義:System.Windows.Forms.Control.PictureBox

を表示するために使用する汎用的なコントロール。簡単な図線の場合はSystem.Drawing名前空間で描画する方がパファーマンスが良い。

PrintDialog

PrintDialog

クラス定義:System.Windows.Forms.CommonDialog.PrintDialog

プリンターと印刷するドキュメントの選択が行えるダイアログボックス。

PrintDocument

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.PrintDocument

印刷するときにどのドキュメントを対象とするのかを指定するときに使うクラス。前述のPrintDialogなどと併用する。

PrintPreviewControl

dot-net-control-that-has-no-ui

クラス定義:System.Windows.Forms.Control.PrintPreviewControl

印刷プレビューのプレビュー部分本体を表すクラス。ボタンなどのUIは含まれない(PrintPreviewDialogとは別)ので、これを単体で使うことはあまりないと思われる。

PrintPreviewDialog

PrintPreviewDialog

クラス定義:System.Windows.Forms.Form.PrintPreviewDialog

Windows標準の印刷プレビューを使用するためのコントロール。ダイアログボックス(ウィンドウ)としてUIを持つ。前述のPrintPreviewControlを内包している。

Process

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.Process

システムのプロセスにアクセスするためのクラスオブジェクト。ローカルとリモートどちらのプロセスも扱える。x86/x64問題、使い終わったプロセスの解放などには注意する。

ProgressBar

progressbaar

クラス定義:System.Windows.Forms.Control.ProgressBar

Windowsのプログレスバーを表示するコントロール。3つのバースタイルから好きなビジュアルを選べる。

PropertyGrid

PropertyGrid

クラス定義:System.Windows.Forms.ContainerControl.PropertyGrid

各コントロールのプロパティを表示するためのコントロール。これを使うと、開発者がVisual Studioのプロパティで好きにカスタマイズするのと同じようにユーザーがフォームを作り変えていける。

RadioButton

radiobutton

クラス定義:System.Windows.Forms.ButtonBase.RadioButton

グループ化された中から単一の値を選択させたいときに使うUI。GroupBoxやPanelとの併用が推奨される。

RichTextBox

RichTextBox

クラス定義:System.Windows.Forms.TextBoxBase.RichTextBox

リッチテキスト形式のテキストボックスを表すコントロール。RTFファイルを扱うことができるようになっているほか、各書式設定が利用できるようになる。

SaveFileDialog

SaveFileDialog

クラス定義:System.Windows.Forms.FileDialog.SaveFileDialog

「名前を付けて保存」ダイアログボックスを表示するためのクラス。よく使う。

SerialPort

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.SerialPort

システムのシリアルポート関連の情報にアクセスするためのクラス。ピン状態なども取得できる。

ServiceController

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.ServiceController

実行中のサービスの情報取得や各種操作のために利用する。プロセスと似ているが違うもの。

SplitContainer

SplitContainer

クラス定義:System.Windows.Forms.ContainerControl.SplitContainer

フォームを複数のペイン(パネルと呼んでいる)にサイズ可変状態で分割することができる機能。かなり汎用性が高く、FlowLayoutPanelとは違ったレスポンシブチックなUIを実装できる。

Splitter

dot-net-control-that-has-no-ui

クラス定義:System.Windows.Forms.Control.Splitter

前述のSplitContainerによる分割線を単体で示すコントロール。これを単体で使うことは今はなく、互換性の問題だけで残されている。

StatusStrip

StatusStrip

クラス定義:System.Windows.Forms.ToolStrip.StatusStrip

Windowsにおけるステータスバー(ウィンドウの下に張り付いて常に情報を表示するもの)を配置するためのコントロール。

TabControl

TabControl

クラス定義:System.Windows.Forms.Control.TabControl

アプリケーションの設定画面でよく使われるようなタブ画面を実装できる。よく使う。

TableLayoutPanel

TableLayoutPanel

クラス定義:System.Windows.Forms.Panel.TableLayoutPanel

動的にレイアウトされるパネルのテーブル(表)バージョン。格納する値の文字列長が流動的なときに使うと効果的。コントロール自体の整列にも利用したい。

TextBox

textbox

クラス定義:System.Windows.Forms.TextBoxBase.TextBox

最も一般的なタイプのテキストボックスコントロール。これ1つでマルチライン対応やパスワードマスクまで対応できる。

Timer

dot-net-control-that-has-no-ui

クラス定義:System.ComponentModel.Component.Timer

指定したタイミングでイベントトリガーを発生させるために使うコンポーネント。シングルスレッド用の低精度なタイマーなので、より高精度なタイマーを必要とする場合はSystem.Timers名前空間にあるTimerクラスを使用すると良い。

ToolStrip

ToolStrip

クラス定義:System.Windows.Forms.ScrollableControl.ToolStrip

標準的なツールバー(アイコンなどでショートカットを提供するもの)を実装するためのコンテナ。これまでに登場した各Strip系コントロールの基底クラス。

ToolStripContainer

ToolStripContainer

クラス定義:System.Windows.Forms.ContainerControl.ToolStripContainer

ToolStripをフォーム内の上下左右好きな場所に配置させるために使うパネル。

ToolTip

tooltip

クラス定義:System.ComponentModel.Component.ToolTip

ユーザーがマウスポインターをフォーム上のコントロールにオーバーさせたとき、そのコントロールの説明をポップアップウィンドウで表示する。この仕組み自体をツールチップとも言う。

TrackBar

TrackBar

クラス定義:System.Windows.Forms.Control.TrackBar

スライダーのこと。特別な用途はなく「値入力のための普通のコントロール」なので、100段階での入力などをスライダーでやらせることがないようにしたい。

TreeView

TreeView

クラス定義:System.Windows.Forms.Control.TreeView

エクスプローラーに代表されるようなツリー状のUIを提供するクラス。各ノードにオブジェクトを追加していくことで実装する。

VScrollBar

vscrollbar

クラス定義:System.Windows.Forms.ScrollBar.VScrollBar

Windows標準の垂直スクロールバーを表示させる。

WebBrowser

webbrowser

クラス定義:System.Windows.Forms.WebBrowserBase.WebBrowser

フォーム内でWebブラウジング機能を提供するコントロール。あまり使い勝手が良くないので、素直にLinkLabelを使うアプローチなどを検討した方がいいかも。

おわりに

見た目が貧相なので敬遠されがちだけれど、実はWindowsフォームアプリケーションってかなり多彩なことができますよね。WPFやらUWPやら今は色々ありますが、これからも業務用ツールなどでシンプルな.NETアプリケーションの需要は絶えないでしょう。

最後に、「VBやC#の情報といえばこのサイトあり」というほどの豊富なサンプルコードでいつも僕らを助けてくれるVB中学校さんに敬意を表して終わりたいと思います。

みるみ
\ Follow Me! /
みるみ

ブロガー、エンジニア。

ブログ「みるめも」を運営、他の人には書けないであろう独自性のある要らねぇ情報をお届けしています。

初めての方はみなさん はじめましての10記事 を読んでらっしゃいます。おすすめです!

みるめも
関連しそうな記事