簡體   English   中英

radgridview 上的條件格式以刪除“-” - C#

[英]Conditional formatting on a radgridview to remove '-' - C#

我有一個 rad 網格視圖,其中包含與股票走勢相關的數據。 命名的列中的值都將作為負數通過。 我想添加格式,以便從數字中刪除負數。

我認為條件格式是我想要的方式,我不確定在滿足條件后我想做什么。

ConditionalFormattingObject obj = new ConditionalFormattingObject("MyCondition", ConditionTypes.StartsWith, "-", "", false);
obj.CellBackColor = Color.SkyBlue;
obj.CellForeColor = Color.Red;
obj.TextAlignment = ContentAlignment.MiddleRight;
this.rgv_orderLines.Columns["Moved so Far"].ConditionalFormattingObjectList.Add(obj);

當條件滿足時,上面的代碼會將單元格變成藍色。 但是,我不希望這樣,我希望刪除'-'

編輯:下面的代碼給出了所需的結果,但是,如果沒有 try catch 它會在任何不包含值的單元格上崩潰。

    private void rgv_orderLines_CellFormatting(object sender, CellFormattingEventArgs e)
    {
        if (e.CellElement.ColumnInfo.Name == "Moved so Far")
        {
            try
            {
                string value = e.CellElement.Value.ToString();
                value = value.Replace("-", "");
                e.CellElement.Value = value;
            }
            catch (Exception ex)
            {

            }
        }
    }

ConditionalFormattingObject僅用於設置行的樣式,即設置字體和顏色。 它沒有格式化數據值的功能。

理想情況下,您應該首先將數據存儲為正數,因為這使得排序、過濾等更加容易。 但是,如果您只想將該值顯示為正數,則應確保該列是GridViewDecimalColumn並將該列的FormatString設置為類似

"#.###;#.###;0"

這意味着將值顯示為 3 位小數,無論是正數還是負數,0 都顯示為 0。

如果它是一個字符串列,您的代碼可以工作,只需在格式化之前檢查 Value 是否為空:

private void rgv_orderLines_CellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.CellElement.ColumnInfo.Name == "Moved so Far")
    {
        if(e.CellElement.Value != null)
        {
            string value = e.CellElement.Value.ToString();
            value = value.Replace("-", "");
            e.CellElement.Value = value;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM