DataGridView コントロールを利用した例を [1] で見つけたので、それを少し加工したサンプル DataGridViewTest.cs を紹介します。
///////////////////////////////////////////////////////////////////////////////
// DataGridViewTest.cs - DataGridView コントロールを使ったサンプル
//
// 参考/引用:
// Koders Code Search: Test.cs - C#
// modified by Fuhito Suguri, 7-Aug-2010
///////////////////////////////////////////////////////////////////////////////
using System;
using System.Windows.Forms;
using System.Drawing;
//
namespace bitWalk
{
public class Program
{
public static void Main (string[] args) {
DataGridViewTest p = new DataGridViewTest();
p.SampleDataShow();
Application.Run(p);
}
}
//
public class DataGridViewTest : Form {
DataGridView myDataGridView;
/////////////////////////////////////////////////////////////////////////////
// DataGridViewTest constructor
public DataGridViewTest () {
this.Width = 400;
this.Height = 200;
this.Text = "DataGridViewTest";
//
this.Closed += OnClosed;
//
myDataGridView = new DataGridView();
myDataGridView.ColumnCount = 5;
//
DataGridViewCellStyle style1 = myDataGridView.ColumnHeadersDefaultCellStyle;
style1.BackColor = Color.Navy;
style1.ForeColor = Color.White;
style1.Font = new Font(myDataGridView.Font, FontStyle.Bold);
//
DataGridViewCellStyle style2 = new DataGridViewCellStyle();
style2.BackColor = Color.Beige;
style2.ForeColor = Color.Brown;
style2.Font = new Font("Arial", 8);
myDataGridView.AlternatingRowsDefaultCellStyle = style2;
//
myDataGridView.EditMode = DataGridViewEditMode.EditOnEnter;
myDataGridView.Name = "myDataGridView";
myDataGridView.AutoSizeRowsMode =
DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
myDataGridView.ColumnHeadersBorderStyle =
DataGridViewHeaderBorderStyle.Raised;
myDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single;
myDataGridView.GridColor = SystemColors.ActiveBorder;
myDataGridView.Columns[0].Name = "リリース日";
myDataGridView.Columns[1].Name = "トラック";
myDataGridView.Columns[1].DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleCenter;
myDataGridView.Columns[2].Name = "タイトル";
myDataGridView.Columns[3].Name = "アーティスト";
myDataGridView.Columns[4].Name = "アルバム";
myDataGridView.Columns[4].DefaultCellStyle.Font =
new Font(DataGridView.DefaultFont, FontStyle.Italic);
myDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
myDataGridView.MultiSelect = false;
myDataGridView.BackgroundColor = Color.Honeydew;
myDataGridView.Dock = DockStyle.Fill;
myDataGridView.CellFormatting +=
new DataGridViewCellFormattingEventHandler(MyDataGridViewCellFormatting);
myDataGridView.CellParsing +=
new DataGridViewCellParsingEventHandler(MyDataGridViewCellParsing);
myDataGridView.CellValidating +=
new DataGridViewCellValidatingEventHandler(MyDataGridViewCellValidating);
this.Controls.Add(myDataGridView);
//
DataGridViewColumnCollection columns = this.myDataGridView.Columns;
columns[0].DisplayIndex = 3;
columns[1].DisplayIndex = 4;
columns[2].DisplayIndex = 0;
columns[3].DisplayIndex = 1;
columns[4].DisplayIndex = 2;
}
// Populating the DataGrid
public void SampleDataShow () {
DataGridViewRowCollection rows = this.myDataGridView.Rows;
rows.Add(new string[] {"11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]"});
rows.Add(new string[] {"4/4/1960", "6", "Fools Rush In", "Frank Sinatra", "Nice 'N' Easy"});
rows.Add(new string[] {"11/11/1971", "1", "One of These Days", "Pink Floyd", "Meddle"});
rows.Add(new string[] {"4/4/1988", "7", "Where Is MY Mind?", "Pixies", "Surfer Rosa"});
rows.Add(new string[] {"5/1981", "9", "Can't Find My Mind", "Cramps", "Psychedelic Jungle"});
rows.Add(new string[] {"6/10/2003", "13", "Scatterbrain. (As Dead As Leaves.)", "Radiohead", "Hail to the Thief"});
rows.Add(new string[] {"6/30/1992", "3", "Dress", "P J Harvey", "Dry"});
}
//
void MyDataGridViewCellValidating (object sender, EventArgs args) {
}
//
void MyDataGridViewCellParsing (object sender, EventArgs args) {
}
//
void MyDataGridViewCellFormatting (object sender, EventArgs args) {
}
//
void OnClosed (object o, EventArgs e) {
Console.WriteLine("Closed!");
Application.Exit();
}
}
}
// END PROGRAM
Fedora 上でのビルド、および実行は次のようにします。
$ gmcs -pkg:dotnet -target:winexe DataGridViewTest.cs
$ mono DataGridViewTest.exe &
Windows XP へ DataGridViewTest.exe をコピーして、(ダブルクリックして)実行した結果を以下に示しました。
アプリケーションで使用するスプレッドシートでも、Excel の機能すべてが必要ではありませんが、それでも、ほとんどの場合で必要になる共通な基本機能があります。これらを用意してある程度汎用性があるクラスを用意しておけば、利用価値が高くなります。
参考サイト
[1] Koders Code Search: Test.cs - C#
0 件のコメント:
コメントを投稿