PowerTools MultiRow for Windows Forms 8.0J
ConditionalCellStyle クラス
メンバ  使用例 

指定した条件に従ってスタイルをカスタマイズできる特別なCellStyleを表します。このクラスは継承できません。
構文
Public NotInheritable Class ConditionalCellStyle 
   Inherits CellStyle
public sealed class ConditionalCellStyle : CellStyle 
解説
ConditionalCellStyleを使用すると、さまざまな条件に従ってセルの表示スタイルを変えることができます。たとえば、数値を表示するセルがあるとします。このセルの値が負である場合にセルの前景を赤で描画できます。そのためには、ConditionalCellStyleをセルのStyleプロパティに設定し、ConditionalCellStyleItem.OperatorConditionalCellStyleOperator.LessThanConditionalCellStyleItem.Value1が0、CellStyleが"Red"の前景色に設定されたConditionalCellStyleItemをそのConditionalCellStyleに格納します。
使用例
次のサンプルコードは、条件付きセルスタイルを実装する方法を示します。値が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

参照

ConditionalCellStyle メンバ
GrapeCity.Win.MultiRow 名前空間
CellStyle クラス
DynamicCellStyle クラス
NamedCellStyle クラス
CombinedCellStyle クラス
ConditionalCellStyleItemCollection クラス

 

 


© 2008-2015 GrapeCity inc. All rights reserved.