2009-06-15 124 views
3

我的DGV將行BackColors設置爲基於業務邏輯的各種顏色。當用戶選擇該行時,顏色將變爲選定的行BackColor,從而模糊了預設的顏色。我希望在選中某一行時保留原始顏色,並在選定行周圍(可能是)粗體邊框指示選擇。這可能嗎?我錯過了一個簡單的選擇嗎?是否可以在DataGridView中顯示選擇邊框而不是背景顏色?

編輯 要說清楚,這是一個WinForms應用程序。

回答

5

另一種可能性是將選擇顏色設置爲正常背景的較暗陰影。這將比重新實現選定行的邊框繪圖要簡單得多。

所以,當你添加有,比方說一個排,一個黃色背景

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用於顏色變暗乘以每個顏色成分,你可以玩不同的價值觀這裏查看什麼讓你最美觀。

+0

我沒意識到你可以在單個行上設置選擇顏色。問題解決了! – Simon 2009-06-15 14:27:45

0

您可以使用

<SelectedRowStyle CssClass="MyCssClass" /> 

,你需要創建一個CSS類來定義你所需要的邊框樣式錶行。或者你可以使用在線邊框造型與

<SelectedRowStyle BorderStyle="Solid" BorderWidth="1" BorderColor="Black" /> 
3

爲了改變你通常都要基於關閉的DataGridView類的子類的DataGridView的默認行爲。我不得不這樣做,當我想改變DataGridView的表格單元格的默認行爲,只要輸入,即。按向上和向下箭頭,輸入鍵,那種東西。

你所要求的似乎只是創建一個自定義列,我相信你應該遵循相同的步驟。不過,我不確定你如何改變背景顏色。

我建議你從那裏開始。實際上,當您想要使用datagridview進行更多的操作時,我發現您需要執行此操作。

我想包括幾個環節:

MSDN on creating custom columns for the DataGridView

Blog about creating custom input behavior for DataGridView

我知道這可能需要一些時間,你很可能希望速戰速決,但學習上幫助你與其他項目也是如此。

我可能是錯的,可能有更簡單的方法來做你在說什麼。

此外,請嘗試使用Google搜索「datagridview自定義行爲」。

我相信你是在談論一個Windows窗體應用程序,而不是一個Web應用程序,正確嗎?

相關問題