DataGridView:Excel と相互コピー&ペーストする方法
DataGridView の ClipboardCopyMode によるコピー動作の違いと、標準では用意されていない貼り付け機能の実装方法を解説します。Excel 形式(TSV)の解析、ReadOnly 列のスキップ、行の自動追加、型変換、検証の落とし穴まで扱います。

DataGridView の ClipboardCopyMode によるコピー動作の違いと、標準では用意されていない貼り付け機能の実装方法を解説します。Excel 形式(TSV)の解析、ReadOnly 列のスキップ、行の自動追加、型変換、検証の落とし穴まで扱います。

DataGridView で発生する IndexOutOfRangeException「インデックス -1 には値がありません」を、BindingSource の空・フィルタ・行削除・ComboBox 列・初期化順序の5系統に分けて切り分け、恒久的な防御策までまとめます。

DataGridView に List<T> や BindingList<T> をバインドすると列ヘッダークリックで並べ替えできない理由を IBindingList.SupportsSorting から解き明かし、ソートグリフ表示まで対応した SortableBindingList<T> の実装と制約・代替案をまとめます。

DataGridView のセル表示書式を DefaultCellStyle.Format で設定する方法を解説します。書式指定子の一覧、スタイルの優先順位、null 値の扱い、CellFormatting との使い分け、桁区切りを設定すると編集時に例外が出る問題の対処まで扱います。

いつも当ブログをご覧いただきありがとうございます。C# Windows Forms を用いた業務アプリケーション開発において、DataGridView は高機能であり…

Windows Forms アプリケーションの開発時に、「ログイン画面やメイン画面を飛ばして、今作っているサブフォーム(Form2 など)の動作だけを確認したい」という場面はよくあります。

C# の DataGridView では、セルを入力中に Enter キーを押すと、標準(デフォルト)の挙動では「下のセル」へフォーカスが移動します。

DataGridView にデータを表示・連動させる際、開発者が最初に頭を悩ませるのが「データソースに何を使うか」という問題です。

Windows Forms 開発において、画面のコンボボックス(ComboBox)に選択肢を表示させる際、独自のクラス(モデルクラス)を要素に持つ List のデータをバインドしたいケースはよくあります。

Windows Formsの開発において、一覧データを表示・編集する際によく使われる DataGridView コントロールですが、デフォルトの状態では、ユーザーが新しいデータを入力できるように…

DataGridView への行追加は DataSource にバインドしているかで方法が変わります。バインドなしの Rows.Add()、DataTable の NewRow()、BindingList の Add() を C# サンプルコードで解説。InvalidOperationException の原因と対処、追加した行が反映されない場合の解決方法もまとめました。

DataGridView で「入力エラーがあるセルを目立たせたい」、「ボタンを押したタイミングで特定のセルだけ色を変えたい」という場面はよくあります。

DataGridView で日付を扱う際、「キーボードで手入力させるよりも、マウス操作でカレンダーからパッと日付を選ばせたい」という要件はよく出てくると思います。

DataGridView に表示されているデータから、「〇行目の〇列目の値を取得したい」という場面はよくあります。C# の DataGridView では、Rows[行].Cells[列].Value という基本の形で…

Excel で作成された商品リストやマスターデータをシステムに読み込んで DataGridView に一括表示させたいという要件は、業務アプリケーションの開発において多く発生します。

DataGridView に表示されているデータから、「〇行目の〇列目の値をプログラムから書き換えたい」という場面はよくあります。

DataGridView は、C# の Windows Forms(WinForms)で表形式のデータを表示・編集するた...

C# の Windows Forms 開発において、独自クラスのオブジェクトを格納した通常の List のデータを DataGridView に表示させたいケースがあります。

DataGridView に表示されている大量のデータから、テキストボックスに入力されたキーワードをもとに特定の行だけを抽出(絞り込み検索)したいケースは、業務システムにおいて極めて一般的です。

Windows Forms 開発において、画面の一方に DataGridView で一覧(マスター)を表示し、選択した行のデータをもう一方のテキストボックス群(詳細入力欄)…

DataGridView で「1列目の『分類』で『家電』を選んだら、2列目の『商品名』コンボボックスには家電のリストだけを表示したい」というように、選択肢を動的に連動させたいケースは業務システムで非常によくあります。

DataGridView でユーザーに行を追加させる設定(AllowUserToAddRows = true)にしている場合、最下部には常に空の「新規入力行(左端に がある行)」が表示されます。

Windows Forms の DataGridView に表示されている一覧データを、Excel ファイル(.xlsx)として出力・保存する実装手順について解説します。

DataGridView で一覧画面を作成する際、先頭列へ「行選択用のチェックボックス列」を配置し、任意の行をまとめて処理できるようにしたいケースは多くあります。

DataGridView に「詳細」や「削除」、「検索」といったボタン列(DataGridViewButtonColumn)を追加した際、標準機能のままではボタンの上にテキストしか表示できません。

DataGridView で、進捗状況などの数値を普段は視覚的なプログレスバー(横バー)で表示し、ダブルクリックして編集モードに入ったときだけ通常の数値入力に切り替えたいという要件は、業務システムでよくあります。

DataGridView で住所や備考欄などの長い文字列を表示する際、標準設定のままではセルの横幅を超えた部分が隠れてしまい、末尾が「...」と省略されてしまいます。

Visual Studio 開発において、プロジェクトをビルドした際に突然 「"LC.exe" はコード 1 を伴って終了しました」(または英語で "LC.exe exited with code 1")…

DataGridView でユーザーが新しい行を追加してデータを入力する際、特定のセルにあらかじめ決まった初期値(既定値)を自動で入力しておきたい場合があります。

DataGridView でテキストを入力させる際、列のデータの性質に合わせて日本語入力(IME)のオン・オフを自動的に切り替えたい場合があります。

DataGridView の一覧画面を構築する際、特定の列ヘッダーに「鍵マーク」、「スターマーク」などの画像アイコンを配置して、視認性を高めたい場合があります。

DataGridView でコンボボックス列(DataGridViewComboBoxColumn)を使用する際、選択肢(ドロップダウンリスト)から値を選ばせるだけでなく…

DataGridView でユーザーに直接データを編集させる際、価格の列には数値以外を入力させないようにする、コードの列は5文字以内に制限するようなシナリオがあります。

DataGridView で一覧画面を表示する際、ユーザーの任意の順序に行を並び替えさせたい場合があります。列の移動についてはプロパティの設定による標準機能でサポートされていますが…

DataGridView でデータを再読み込み(リフレッシュ)した際、画面が最上部まで勝手にスクロールしてしまい、ユーザーが直前まで見ていた位置を見失ってしまうことがあります。

売上の推移や在庫数の変動など、数字の羅列だけでは把握しにくいデータの傾向を、一覧画面のセルの中に小さな折れ線グラフ(スパークライン)として視覚的に表現したい場合があります。

DataGridView に大量のデータを表示しようとする際、件数が数万件、数十万件と増えるにつれて、データの読み込みに時間がかかったり、スクロールの動作が重くなったりすることがあります。

DataGridView を使って業務システムの画面をデザインする際、「全体の文字サイズを大きくして視認性を上げたい」、「ヘッダー部分だけ太字(ボールド)にして強調したい」といったフォント変更の要望はよくあります。

DataGridView で商品一覧や社員名簿などを表示する際、テキストデータだけでなく、セルのなかに「商品のサムネイル画像」や「顔写真」などの画像データを一緒に表示したいケースがあります。

Windows Forms でローカル環境にデータを保存するデスクトップアプリやスタンドアロンの業務システムを開発する際…

DataGridView で一覧画面を表示する際、「商品名をクリックしたら公式ページを開く」「ヘルプのリンクをクリックしたらマニュアルのURLをブラウザで開く」といった、セル内にリンク(ハイパーリンク)…

DataGridView で一覧を表示する際に、特定の行を選択して一括処理(一括削除や一括印刷など)を行うために、左端にチェックボックス列を配置したいケースは多いです。

DataGridView で一覧を表示する際、特定の列をコンボボックス(ドロップダウン)にして、マスタデータから選択させたいケースは多くあると思います。

DataGridView で特定の条件(例:在庫切れ、期限切れなど)を満たすセルや行の色を動的に変更する際、データ量が数百件程度であれば問題になりませんが、数千件〜数万行の大規模なデータを扱うと…

DataGridView に独自のクラス(オブジェクト)のリストを表示させたい場合、標準の List をデータソースに指定すると、コード側で行を追加・削除しても画面が自動的に更新されないという問題に遭遇します。

DataGridView に表示するデータをデータベースや Web API から取得する際、画面がフリーズするのを防ぐために async/await を使った非同期処理を導入することは一般的です。

DataGridView でユーザーの入力値に問題がある場合、メッセージボックスを表示する代わりに、セルの右端に赤いエラーアイコン(!

DataGridView で入力チェック(バリデーション)を行う際、「不正な値が入力された場合は、その場で正しい値に修正するまで次のセルに移動させたくない」という厳格な画面制御を求められるケースは多いです。

DataGridView で「ID やシステム管理用の内部コードなど、画面には表示したくないけれど、プログラムの処理内では値を使いたい」というシチュエーションは多く存在します。

DataGridView を使って開発していると、コード側でデータクラスの値を変更したのに、画面上の DataGridView のセルが古いまま更新されないという問題に遭遇することがあります。

Windows FormsにおけるDataGridViewは、表形式のデータを表示するための最も基本的なコントロールの一つです。

DataGridView を使用して行を追加しようとした際、コード実行時にエラーが発生したり、画面上に新規追加行が表示されなかったりすることがあります。

Windows Forms DataGridView で、行削除の制御方法を紹介します。デフォルトの設定で、エンドユーザーによる行の削除機能が有効化されています。

DataGridView の新規追加行(一番下に表示される空白の行)を消す方法を紹介します。この新規行は、ユーザーが新しい行を追加できるようにするための機能ですが、アプリケーションの仕様によっては不要なこともあります。

本記事では、業務システムなどでよく使われる、DataGridView の条件付き書式の実装方法を紹介します。条件付き書式は、値に応じてセルや行の背景色・文字色などを変えることで…

Windows Forms アプリケーションで DataGridView を使っていると、「行ヘッダーに行番号を表示したい」と思うことがあります。

DataGridView では、列にボタンを表示することができます。行の詳細情報をダイアログ表示する際や、行に対する任意の操作(行編集の開始・行の削除など)に利用されます。

DataGridView では、Frozen プロパティを利用することで、列や行を固定し、常に表示領域にとどめることができます。

DataGridView の隔行(奇数行・偶数行それぞれ)の背景色を変更するには、下記のようにプロパティを設定します。奇数行には、RowsDefaultCellStyle プロパティを利用し…

DataGridView の全体・列・セル・行に関して、プロパティでの編集制御、イベントでの編集制御の方法を紹介します。

Windows Forms の DataGridView で、マウスホバーしているセルの背景色を変更するには、DataGridView の CellMouseEnter イベントと…

DataGridView の列の移動方法を紹介します。ユーザーのマウス操作による列の移動は、AllowUserToOrderColumns プロパティを利用することで有効化することができます。

DataGridView の CurrentCell プロパティに任意のセルを指定することで、そのセルを表示領域に持ってくることができます。

Windows Forms で提供されている DataGridView の、現在セルの取得と変更の方法を紹介します。DataGridView の CurrentCell プロパティに、セルを指定します。

Windows Fomrs の DataGridView に DataTable をバインドするサンプルの紹介です。ダウンロードリンクは記事下部に掲載しています。

Windows Forms(.NET 8)で提供されている ComboBox に、DataTable をバインドする方法を紹介します。

本稿では xampp の MySQL データベースのデータテーブルを取得して Windows Forms の DataGridView に表示する例を紹介します。

TextBox にフォーカスが当たったタイミングで TextBox 内のテキストを全選択するロジックを実装する方法です。

コードビハインドから動的にイベントを呼び出す方法です。通常、イベントは何らかの操作に対応するかたちで呼び出されるものですが、プログラムからイベントそのものを呼び出すことも可能です。

Windows Forms ではフォーム上のマウスカーソルの形状を確認したり、状況に応じて形状を変更することができます。

Windows Forms では、ユーザー コントロールに対する様々なキー入力をイベント ハンドルすることができますが、Tab キーはフォームレベルで管理されているためユーザー コントロール レベルではイベント が発生し…