この記事は2020年06月12日に投稿しました。
目次
リンク
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC++/CLIでDataGridViewを使用する方法についてです。
2. C++/CLIでDataGridViewを使用する/a>
C++/CLIでDataGridViewを使用するには、以下のような実装になります。
実装例
MainForm.h
#pragma once #define COLUMN_NUM (3) #define ROW_NUM (5) namespace CLIDataGridView { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// MainForm の概要 /// </summary> public ref class MainForm : public System::Windows::Forms::Form { public: MainForm(void) { InitializeComponent(); // データグリッドビューのサイズをフォームのクライアントサイズに合わせます。 dataGridView->Size = this->ClientSize; // 列数を3とします。 dataGridView->ColumnCount = 3; // 行ヘッダを非表示とします。 dataGridView->RowHeadersVisible = false; // 行追加を禁止します。 dataGridView->AllowUserToAddRows = false; // 列幅の変更を禁止します。 dataGridView->AllowUserToResizeColumns = false; // 行高さの変更を禁止します。 dataGridView->AllowUserToResizeRows = false; // 複数選択不可とします。 dataGridView->MultiSelect = false; // 選択単位をセルにします。 dataGridView->SelectionMode = DataGridViewSelectionMode::CellSelect; // 列の属性を設定します。 int columnWidth = dataGridView->Width / COLUMN_NUM; for (int columnIndex = 0; columnIndex < COLUMN_NUM; ++columnIndex) { // 列タイトルを設定します。 dataGridView->Columns[columnIndex]->HeaderText = "列" + columnIndex; // 列幅を設定します。 dataGridView->Columns[columnIndex]->Width = columnWidth; // 並べ替えを禁止します。 dataGridView->Columns[columnIndex]->SortMode = DataGridViewColumnSortMode::NotSortable; } // セルのデータを設定します。 for (int rowIndex = 0; rowIndex < ROW_NUM; ++rowIndex) { array<String^>^ row = gcnew array<String^>(3); for (int columnIndex = 0; columnIndex < COLUMN_NUM; ++columnIndex) { String^ title = String::Format("{0:D}-{1:D}", rowIndex, columnIndex); row[columnIndex] = title; } dataGridView->Rows->Add(row); } // 行2列1の値を変更します。 dataGridView->Rows[2]->Cells[1]->Value = "Data"; } (以下、省略) }; }
main.cpp
#include "MainForm.h" using namespace CLIDataGridView; [STAThreadAttribute] int main() { MainForm^ form = gcnew MainForm(); form->ShowDialog(); return 0; }
実行結果
API Reference
DataGridViewクラス
3. おわりに
表の表示はよく使うと思うのですが、DataGridViewを使えば割と簡単に表示できます。
リンク
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688