grid 控制項的重要性無需多說了,但要找乙個好用的卻是難上加難
雖然市面上有很多成熟公司的成熟產品, 但那些東西畢竟太貴了,所以還是自己寫比較實在(什麼, 破解版還是算了吧)
自vs2005 以後,vs 系統自帶了乙個 datagridview 控制項, 這個控制項的功能是很強大的,擴充套件性也不錯, 所以我們就以它為基礎吧
開始統計需要擴充套件的功能先:
1.顯示行號
2.加入可以輸入文字的 datagridviewcomboboxcell
2.可分組摺疊
3.合併單元格
4.undo/redo的支援
5.其他。。。。。
定義類///
///擴充套件的datagridview
///public
class
datagridviewex:datagridview
先來乙個最簡單的:顯示行號
這裡我們用到了乙個事件 rowpostpaint, 檢視msdn後可知該事件是在「繪製 datagridviewrow 後發生」
datagridview 在繪製 datagridviewrow 時沒有處理行號, 那就由 datagridviewex 來處理吧
知道了原理,新增行號就很簡單了, drawstring 就ok。
給出主要的**實現 :
void
datagridviewex_rowpostpaint(
object
sender,datagridviewrowpostpainteventargse)}
完成後的效果:
dropdownstyle 屬性
//////
控制組合框的外觀和功能
///[description(
"控制組合框的外觀和功能
"), defaultvalue(comboboxstyle.dropdownlist)]
public
comboboxstyle dropdownstyle
set
因為主要的功能都是在 datagridviewex 中實現的, 呵呵
回到 datagridviewex 中, 重寫 oneditingcontrolshowing 方法,看字面意思就知道,這個方法是在 grid 的任何「編輯控制項」顯示時呼叫
看到這個我想大家都明白了, 我們只要在 combobox 控制項顯示出來時修改它的樣式即可
protected
override
void
oneditingcontrolshowing(datagridvieweditingcontrolshowingeventargs e){if
(currentcell
!=null
&¤tcell.owningcolumn
isdatagridviewcomboboxcolumnex)
{datagridviewcomboboxcolumnex col
=currentcell.owningcolumn
asdatagridviewcomboboxcolumnex;
//修改組合框的樣式
if(col.dropdownstyle
!=comboboxstyle.dropdownlist)
{combobox combo
=e.control
ascombobox;
combo.dropdownstyle
擴充套件DataGridView 的功能(四)
在用友金蝶等財務軟體中,經常需要輸入貨幣型別的資料,那麼這種輸入框要如何製作呢?借助於強大的 datagridview 控制項,我們可以輕易的製作出這種效果,見下圖.要擴充套件 datagridview 的列型別,我們只需要從 datagridviewcolumn 類中派生出乙個新的類,並且為這個列...
DataGridView控制項的使用
1 資料繫結 下面將介紹用datatable對datagridview控制項進行繫結。首先得到datatable dt,dt中的列為 id pname short name 其次 設定datagridview控制項 dgvproductname 的列,如下圖所示。注意 列的個數要與datatable...
datagridview的行列選擇
取得在datagridview中被選擇的列 行 單元格時,可以使用datagridview物件的selectedcolumns selectedrows selectedcells屬性。vb.net 表示被選擇的單元格 console.writeline 單元格被選擇 for each c as d...