3

私はGridViewExcelからインポートしています。空のセルの近くにメッセージを表示して、何を書くべきかについての情報をユーザーに提供する必要があります..

void simpleButton1_Click(object sender, System.EventArgs e)
{
    string[] msg = new string[60];
    string[] error = new string[400];
    for (int i = 0; i < gridView3.RowCount ; i++)
    {
        System.Data.DataRow Rows = gridView3.GetDataRow(i);
        string cellvalue = Rows[0].ToString();
        if (cellvalue == "")
        {
            msg[0] = "Missing 'First Name'";
            error[i] = msg[0] + " - ";  
        }   
        cellvalue = Rows[1].ToString();
        if (cellvalue == "")
        {
            msg[1] = "Missing 'Last Name'";
            error[i] += msg[1] + " - ";
        }
        //...
    }
}

msg[]少し画像や図を使って変数を特定のセルに配置するにはどうすればよいですか、または"!"セルに色を付けることができます

4

4 に答える 4

2

セルの色を変更するには

Rows[1].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
于 2013-01-30T12:02:07.570 に答える
2

条件付き書式設定機能を使用して、XtraGrid セルに色を付けることができます。

gridControl1.DataSource = new List<Person> { 
    new Person(){ Name = "John", Age = 25 },
    new Person(){ Name = "Mary", Age = 17 },
    new Person(){ Age = 17  },
    new Person(){ Name = "Ann" },
    new Person(){ Name = "Pit", Age = 5 },
};
StyleFormatCondition nameCondition = new StyleFormatCondition();
nameCondition.Column = gridView1.Columns["Name"];
nameCondition.Condition = FormatConditionEnum.Expression;
nameCondition.Expression = "IsNullOrEmpty([Name])";
nameCondition.Appearance.BackColor = Color.Red;
nameCondition.Appearance.Options.UseBackColor = true;

StyleFormatCondition ageCondition = new StyleFormatCondition();
ageCondition.Column = gridView1.Columns["Age"];
ageCondition.Condition = FormatConditionEnum.Expression;
ageCondition.Expression = "[Age]<10";
ageCondition.Appearance.BackColor = Color.Maroon;
ageCondition.Appearance.Options.UseBackColor = true;

gridView1.FormatConditions.AddRange(new StyleFormatCondition[] { 
    nameCondition, ageCondition
});

結果:
XtraGrid 条件付き書式

関連リンク:
個々の行とセルの外観のカスタマイズ
スタイル フォーマット条件
カスタム ペイント (サンプル)

于 2013-01-30T12:57:45.983 に答える
1

ToolTipたぶん、アラートを表示するために a を使用できます。

toolTip1.ToolTipIcon = ToolTipIcon.Warning;
toolTip1.ToolTipTitle = "Warning!";
toolTip1.Show("Missing 'First Name'", x, y);

の行と列のサイズに基づいて、セルの位置を推測するだけで済みますDataGridView

例1 例2

ToolTipSystem.Windows.Forms名前空間にあります。

于 2013-01-30T12:12:11.840 に答える
1

参照:方法: データ セルにカスタム表示テキストを提供する

ColumnView.CustomColumnDisplayTextイベントを介して、データ セルのカスタム表示テキストを提供します 。customdrawing とセル スタイルの詳細については、カスタムペイント サンプルの個々の行とセルの外観のカスタマイズの ドキュメント セクションを参照してください。

ゼロ値が含まれている場合、空の文字列が「割引」列のセル内に表示される例を確認してください。

using DevExpress.XtraGrid.Views.Base;

private void gridView1_CustomColumnDisplayText(object sender, 
CustomColumnDisplayTextEventArgs e) {
   if(e.Column.FieldName == "Discount")
      if(Convert.ToDecimal(e.Value) == 0) e.DisplayText = "";
}

Image and text両方を表示したい場合は、GridView のGridView.CustomDrawCellイベントを処理する必要があります。これは、他の列の値 (age 列) に基づいて Name 列の色を変更するコードの抜粋です。

private void gridView_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
    {
        if (e.Column == colName)
        {
            var age = Convert.ToInt32(gridView.GetRowCellValue(e.RowHandle, colAge));
            if (age < 18)
                e.Appearance.BackColor = Color.FromArgb(0xFE, 0xDF, 0x98);
            else
                e.Appearance.BackColor = Color.FromArgb(0xD2, 0xFD, 0x91);
        }
    }
于 2013-01-30T13:10:06.693 に答える