作成日: 2022/11/11 最終更新日: 2022/11/11
文書種別
使用方法
詳細
同じ列に、整数、または小数点以下を含む数(Decimal型など)が含まれることがあります。
この場合、それぞれに異なる書式を割り当てるには、Int32.TryParseメソッドを利用できます。
最初にセルの値をいったん文字列にした後、Int32.TryParseメソッドでこの文字列を整数に変換できるかどうか検証します。次いで、その戻り値(True/False)によって整数であるかどうかを判定し、それぞれに応じた書式スタイルを割り当てます。
以下に、簡単な設定サンプルを記載します。

◎サンプルコード(VB)
この場合、それぞれに異なる書式を割り当てるには、Int32.TryParseメソッドを利用できます。
最初にセルの値をいったん文字列にした後、Int32.TryParseメソッドでこの文字列を整数に変換できるかどうか検証します。次いで、その戻り値(True/False)によって整数であるかどうかを判定し、それぞれに応じた書式スタイルを割り当てます。
以下に、簡単な設定サンプルを記載します。
◎サンプルコード(VB)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データ設定
Dim dt As System.Data.DataTable = New System.Data.DataTable("Test")
dt.Columns.Add("ColA", GetType(Decimal))
dt.Rows.Add(111111)
dt.Rows.Add(222222.5)
dt.Rows.Add(333333.555)
dt.Rows.Add(444444.55555)
' FlexGridの設定
C1FlexGrid1.DataSource = dt
C1FlexGrid1.Cols(1).DataType = GetType(Decimal)
C1FlexGrid1.Styles.Add("Style1")
C1FlexGrid1.Styles("Style1").Format = "#,##0"
C1FlexGrid1.Styles.Add("Style2")
C1FlexGrid1.Styles("Style2").Format = "#,##0.0000"
Dim dummy As Integer = Nothing
' 書式の設定
For i As Integer = 1 To C1FlexGrid1.Rows.Count - 1
For j As Integer = 1 To C1FlexGrid1.Cols.Count - 1
Dim result As Boolean = Int32.TryParse($"{C1FlexGrid1(i, j)}", dummy)
Dim style As String = If(result, "Style1", "Style2")
C1FlexGrid1.SetCellStyle(i, j, style)
Next
Next
End Sub
End Class◎サンプルコード(C#)namespace prj_C1FlexGrid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// データ設定
System.Data.DataTable dt = new System.Data.DataTable("Test");
dt.Columns.Add("ColA", typeof(decimal));
dt.Rows.Add(111111);
dt.Rows.Add(222222.5);
dt.Rows.Add(333333.555);
dt.Rows.Add(444444.55555);
c1FlexGrid1.DataSource = dt;
// FlexGridの設定
c1FlexGrid1.Cols[1].DataType = typeof(decimal);
c1FlexGrid1.Styles.Add("Style1");
c1FlexGrid1.Styles["Style1"].Format = "#,##0";
c1FlexGrid1.Styles.Add("Style2");
c1FlexGrid1.Styles["Style2"].Format = "#,##0.0000";
// 書式の設定
for (int i = 1; i < c1FlexGrid1.Rows.Count; i++)
{
for (int j = 1; j < c1FlexGrid1.Cols.Count; j++)
{
bool result = Int32.TryParse($"{c1FlexGrid1[i, j]}", out int dummy);
string style = result ? "Style1" : "Style2";
c1FlexGrid1.SetCellStyle(i, j, style);
}
}
}
}
}