MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
エラーアイコンを表示する

行/セルにエラーアイコンを表示するには、ShowRowErrors/ShowCellErrorsプロパティをTrueにします。その上で、DataRow.RowErrorプロパティおよびDataRow.SetColumnErrorメソッドを使い、DataRowオブジェクトに対してエラーを設定します。また、このサンプルでは独自の画像をエラーアイコンとして使用しています。

【実行例】

エラーアイコン

private DataSet DS;
private void Form1_Load(object sender, EventArgs e)
{
    // データセットを作成します
    DS = new DataSet();
    DataTable DT = new DataTable();
    DT = DS.Tables.Add("SampleTable");
    DT.Columns.AddRange(new DataColumn[] { new DataColumn("ID", Type.GetType("System.Int32")), new DataColumn("Text", Type.GetType("System.String")), new DataColumn("Check", Type.GetType("System.Boolean")) });
    DT.Rows.Add(new Object[] { 10, "Text-10", true });
    DT.Rows.Add(new Object[] { -1, "Text-20", false });
    DT.Rows.Add(new Object[] { 30, "Text-30", false });
    DT.Rows.Add(new Object[] { 20, "Text-40", true });
    DT.Rows.Add(new Object[] { 50, "Text-50", true });
    // データセットを接続します
    fpSpread1.DataSource = DS.Tables[0];
    // 行とセルのエラー表示を有効
    fpSpread1.ShowRowErrors = true;
    fpSpread1.ShowCellErrors = true;
    // カスタムアイコンの使用
    fpSpread1.GetRootWorkbook().ErrorIconRenderer = new CustomErrorIconRenderer();
}
private void button1_Click(object sender, EventArgs e)
{
    for (Int32 i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
    {
        if ((int)fpSpread1.ActiveSheet.GetValue(i, 0) == -1)
        {
            // 行のエラーテキストを設定
            DS.Tables[0].Rows[i].RowError = "行のエラー";
            // セルのエラーテキストを設定
            DS.Tables[0].Rows[i].SetColumnError(0, "セルのエラー");
        }
    }
}
Private DS As DataSet
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' データセットを作成します
    DS = New DataSet()
    Dim DT As New DataTable
    DT = DS.Tables.Add("SampleTable")
    DT.Columns.AddRange(New DataColumn() { _
      New DataColumn("ID", Type.GetType("System.Int32")), _
      New DataColumn("Text", Type.GetType("System.String")), _
      New DataColumn("Check", Type.GetType("System.Boolean")) _
      })
    DT.Rows.Add(New Object() {10, "Text-10", True})
    DT.Rows.Add(New Object() {-1, "Text-20", False})
    DT.Rows.Add(New Object() {30, "Text-30", False})
    DT.Rows.Add(New Object() {20, "Text-40", True})
    DT.Rows.Add(New Object() {50, "Text-50", True})
    ' データセットを接続します
    FpSpread1.DataSource = DS.Tables(0)
    ' 行とセルのエラー表示を有効
    FpSpread1.ShowRowErrors = True
    FpSpread1.ShowCellErrors = True
    ' カスタムアイコンの使用
    FpSpread1.GetRootWorkbook().ErrorIconRenderer = New CustomErrorIconRenderer()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
        If FpSpread1.ActiveSheet.GetValue(i, 0) = -1 Then
            ' 行のエラーテキストを設定
            DS.Tables(0).Rows(i).RowError = "行のエラー"
            ' セルのエラーテキストを設定
            DS.Tables(0).Rows(i).SetColumnError(0, "セルのエラー")
        End If
    Next
End Sub

カスタムレンダラ

[Serializable()]
public class CustomErrorIconRenderer : FarPoint.Win.Spread.IErrorIconRenderer
{
    public void Paint(Graphics g, Rectangle rectPaint)
    {
        Icon errorIcon = new Icon("..\\..\\Icon1.ico");
        g.DrawIcon(errorIcon, rectPaint);
    }
    #region "IDisposable Support"
    // 重複する呼び出しを検出するには
    private bool disposedValue;
    // IDisposable
    protected virtual void Dispose(bool disposing)
    {
        if (!this.disposedValue)
        {
            if (disposing)
            {
                // TODO: マネージ状態を破棄します (マネージ オブジェクト)。
            }
            // TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。
            // TODO: 大きなフィールドを null に設定します。
        }
        this.disposedValue = true;
    }
    // TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。
    //Protected Overrides Sub Finalize()
    //    ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
    //    Dispose(False)
    //    MyBase.Finalize()
    //End Sub
    // このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
    public void Dispose()
    {
        // このコードを変更しないでください。クリーンアップ コードを上の Dispose(disposing As Boolean) に記述します。
        Dispose(true);
        GC.SuppressFinalize(this);
    }
    #endregion
}
<Serializable()> Public Class CustomErrorIconRenderer
    Implements FarPoint.Win.Spread.IErrorIconRenderer
    Public Sub Paint(g As Graphics, rectPaint As Rectangle) Implements FarPoint.Win.Spread.IErrorIconRenderer.Paint
        Dim errorIcon As New Icon("..\..\Icon1.ico")
        g.DrawIcon(errorIcon, rectPaint)
    End Sub
#Region "IDisposable Support"
    Private disposedValue As Boolean ' 重複する呼び出しを検出するには
    ' IDisposable
    Protected Overridable Sub Dispose(disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                ' TODO: マネージ状態を破棄します (マネージ オブジェクト)。
            End If
            ' TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。
            ' TODO: 大きなフィールドを null に設定します。
        End If
        Me.disposedValue = True
    End Sub
    ' TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。
    'Protected Overrides Sub Finalize()
    '    ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
    '    Dispose(False)
    '    MyBase.Finalize()
    'End Sub
    ' このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
    Public Sub Dispose() Implements IDisposable.Dispose
        ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(disposing As Boolean) に記述します。
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
#End Region
End Class

 

 


© MESCIUS inc. All rights reserved.