我的DGV將行BackColors設置爲基於業務邏輯的各種顏色。當用戶選擇該行時,顏色將變爲選定的行BackColor,從而模糊了預設的顏色。我希望在選中某一行時保留原始顏色,並在選定行周圍(可能是)粗體邊框指示選擇。這可能嗎?我錯過了一個簡單的選擇嗎?是否可以在DataGridView中顯示選擇邊框而不是背景顏色?
編輯 要說清楚,這是一個WinForms應用程序。
我的DGV將行BackColors設置爲基於業務邏輯的各種顏色。當用戶選擇該行時,顏色將變爲選定的行BackColor,從而模糊了預設的顏色。我希望在選中某一行時保留原始顏色,並在選定行周圍(可能是)粗體邊框指示選擇。這可能嗎?我錯過了一個簡單的選擇嗎?是否可以在DataGridView中顯示選擇邊框而不是背景顏色?
編輯 要說清楚,這是一個WinForms應用程序。
另一種可能性是將選擇顏色設置爲正常背景的較暗陰影。這將比重新實現選定行的邊框繪圖要簡單得多。
所以,當你添加有,比方說一個排,一個黃色背景
Dim backColor as Color = Color.Yellow
row.DefaultCellStyle.BackColor = backColor
row.DefaultCellStyle.SelectionBackColor = Color.FromArgb(backColor.R * 3/4, backColor.G * 3/4, backColor.B * 3/4)
由相同數量< 1用於顏色變暗乘以每個顏色成分,你可以玩不同的價值觀這裏查看什麼讓你最美觀。
您可以使用
<SelectedRowStyle CssClass="MyCssClass" />
,你需要創建一個CSS類來定義你所需要的邊框樣式錶行。或者你可以使用在線邊框造型與
<SelectedRowStyle BorderStyle="Solid" BorderWidth="1" BorderColor="Black" />
爲了改變你通常都要基於關閉的DataGridView類的子類的DataGridView的默認行爲。我不得不這樣做,當我想改變DataGridView的表格單元格的默認行爲,只要輸入,即。按向上和向下箭頭,輸入鍵,那種東西。
你所要求的似乎只是創建一個自定義列,我相信你應該遵循相同的步驟。不過,我不確定你如何改變背景顏色。
我建議你從那裏開始。實際上,當您想要使用datagridview進行更多的操作時,我發現您需要執行此操作。
我想包括幾個環節:
MSDN on creating custom columns for the DataGridView
Blog about creating custom input behavior for DataGridView
我知道這可能需要一些時間,你很可能希望速戰速決,但學習上幫助你與其他項目也是如此。
我可能是錯的,可能有更簡單的方法來做你在說什麼。
此外,請嘗試使用Google搜索「datagridview自定義行爲」。
我相信你是在談論一個Windows窗體應用程序,而不是一個Web應用程序,正確嗎?
我沒意識到你可以在單個行上設置選擇顏色。問題解決了! – Simon 2009-06-15 14:27:45