指定した条件に従ってスタイルをカスタマイズできる特別な
CellStyleを表します。このクラスは継承できません。
次のサンプルコードは、条件付きセルスタイルを実装する方法を示します。値が5未満の場合、セルの背景は緑で描画されます。値が5~8の場合は黄色で描画されます。値が8より大きい場合は赤で描画されます。
using System;
using System.Windows.Forms;
using System.Drawing;
namespace GrapeCity.Win.MultiRow.SampleCode
{
class ConditionalCellStyleDemo : Form
{
private GcMultiRow gcMultiRow1 = new GcMultiRow();
private Label label1 = new Label();
public ConditionalCellStyleDemo()
{
this.Text = "ConditionalCellStyle Demo";
this.Size = new Size(600, 400);
this.gcMultiRow1.Dock = DockStyle.Fill;
this.Controls.Add(this.gcMultiRow1);
label1.Text = "Change the Cell's value, the corresponding background will be painted.\r\nNote, the cells only accept int number.";
label1.Height = 50;
label1.Dock = DockStyle.Bottom;
label1.BackColor = SystemColors.Info;
label1.ForeColor = Color.Red;
this.Controls.Add(label1);
this.Load += new EventHandler(Form1_Load);
this.StartPosition = FormStartPosition.CenterScreen;
}
private void Form1_Load(object sender, EventArgs e)
{
Template template1 = Template.CreateGridTemplate(10, 50, 21);
CellStyle cellStyle1 = new CellStyle();
cellStyle1.BackColor = Color.Lime;
CellStyle cellStyle2 = new CellStyle();
cellStyle2.BackColor = Color.Yellow;
CellStyle cellStyle3 = new CellStyle();
cellStyle3.BackColor = Color.Red;
//If the cell's value is less than 5, the background will painted to green color
ConditionalCellStyleItem item1 = new ConditionalCellStyleItem(cellStyle1, ConditionalCellStyleOperator.LessThan, 5);
//If the cell's value is between 5 and 8, the background will painted to yellow color
ConditionalCellStyleItem item2 = new ConditionalCellStyleItem(cellStyle2, ConditionalCellStyleOperator.Between, 5, 8);
//If the cell's value is greater than 8, the background will painted to red color
ConditionalCellStyleItem item3 = new ConditionalCellStyleItem(cellStyle3, ConditionalCellStyleOperator.GreaterThan, 8);
//Create one ConditionalCellStyle with three items.
ConditionalCellStyle conditionalStyle1 = new ConditionalCellStyle();
conditionalStyle1.Items.AddRange(new ConditionalCellStyleItem[] { item1, item2, item3 });
for (int i = 0; i < template1.Row.Cells.Count - 1; i++)
{
template1.Row.Cells[i].Style = conditionalStyle1;
template1.Row.Cells[i].Value = i + 1;
template1.Row.Cells[i].ValueType = typeof(Int32);
}
gcMultiRow1.Template = template1;
gcMultiRow1.RowCount = 5;
}
[STAThreadAttribute()]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new ConditionalCellStyleDemo());
}
}
}
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports GrapeCity.Win.MultiRow
Class ConditionalCellStyleDemo
Inherits Form
Private gcMultiRow1 As New GcMultiRow()
Private label1 As New Label()
Public Sub New()
Me.Text = "ConditionalCellStyle Demo"
Me.Size = New Size(600, 400)
Me.gcMultiRow1.Dock = DockStyle.Fill
Me.Controls.Add(Me.gcMultiRow1)
label1.Text = "Change the Cell's value, the corresponding background will be painted. \r\nNote, the cells only accept int number."
label1.Height = 50
label1.Dock = DockStyle.Bottom
label1.BackColor = SystemColors.Info
label1.ForeColor = Color.Red
Me.Controls.Add(label1)
Me.StartPosition = FormStartPosition.CenterScreen
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim template1 As Template = Template.CreateGridTemplate(10, 50, 21)
Dim cellStyle1 As New CellStyle()
cellStyle1.BackColor = Color.Lime
Dim cellStyle2 As New CellStyle()
cellStyle2.BackColor = Color.Yellow
Dim cellStyle3 As New CellStyle()
cellStyle3.BackColor = Color.Red
'If the cell's value is less than 5, the background will painted to green color
Dim item1 As New ConditionalCellStyleItem(cellStyle1, ConditionalCellStyleOperator.LessThan, 5)
'If the cell's value is between 5 and 8, the background will painted to yellow color
Dim item2 As New ConditionalCellStyleItem(cellStyle2, ConditionalCellStyleOperator.Between, 5, 8)
'If the cell's value is greater than 8, the background will painted to red color
Dim item3 As New ConditionalCellStyleItem(cellStyle3, ConditionalCellStyleOperator.GreaterThan, 8)
'Create one ConditionalCellStyle with three items.
Dim conditionalStyle1 As New ConditionalCellStyle()
conditionalStyle1.Items.AddRange(New ConditionalCellStyleItem() {item1, item2, item3})
For i As Integer = 0 To template1.Row.Cells.Count - 2
template1.Row.Cells(i).Style = conditionalStyle1
template1.Row.Cells(i).Value = i + 1
template1.Row.Cells(i).ValueType = GetType(Int32)
Next
gcMultiRow1.Template = template1
gcMultiRow1.RowCount = 5
End Sub
<STAThreadAttribute()> _
Public Shared Sub Main()
Application.EnableVisualStyles()
Application.Run(New ConditionalCellStyleDemo())
End Sub
End Class
System.Object
GrapeCity.Win.MultiRow.CellStyle
GrapeCity.Win.MultiRow.ConditionalCellStyle