[英]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.