Winfrom控制項之DataGridView

2021-08-09 16:35:57 字數 2439 閱讀 1875

一.常用屬性

1.布局

readonly(是否可編輯)

allowusertoaddrows(隱藏底部空行)

rowsheadersvisible(隱藏首列)

datasource(繫結資料來源)

autogeneratecolumns(繫結資料來源後,不自動生成列)

autosizecolumnsmode(自動列寬,fill可解決滑條遮擋問題,但需要第一列frozen值為true。fill模式下,可通過columns列權重屬性fillweight來控制列寬度自動化佔比)

autosizerowsmode(自動行高)

selectionmode (選中模式,fullrowselect為選中整行)

2.新增行

datagridview.rows.clear();//清空所有行

datagridview.rows.add();//新增行

datagridview.rows[行號].cells[列序號].value=值 //賦值行某列文字值

((datagridviewcheckboxcell)datagridview.rows[行號].cells[列序號]).value//賦值下拉框值

3.取值

3.0 通用

datagridview.currentrow.index(獲取選中索引)

datagridview.currentcell.value(獲取選中單元格)

3.1 列型別:textbox

datagridview.rows[行號].cells[列號].value.tostring()(取某行某列值)

3.2 列型別:checkbox

取某行某列的值

(datagridviewcheckboxcell)datagridview.rows[行號].cells[列號]).(editedformattedvalue&formattedvalue)

取選中單元格的值

((datagridviewcheckboxcell)datagridview.rows[datagridview.currentrow.index].cells[列號]).editedformattedvalue.tostring()

在這裡,check選中值分為兩種屬性。

editedformattedvalue 編輯狀態check值

formattedvalue 非編輯狀態check值

3.3 列型別:combobox

datagridview.rows[行號].cells[列號].editedformattedvalue.tostring()

4.方案

4.1單向繫結。

該方法使用datasource繫結資料模型,程式可以通過運算元據模型(改變變數)來控制檢視(控制項同步改變資料),並且datasource包含相應事件可供功能拓展。

4.2雙向繫結

如需實現雙向繫結,在檢視修改後(控制項值修改後)資料模型(變數)也發生變化,只需在cellendedit事件賦值即可。

private void datagridview_cellendedit(object sender,datagridviewcelleventargs e)

5.多型別列互動在我們使用中,乙個datagridview可能包含多種樣式的列,往往列之間需要一些互動,舉個栗子。

首先,我們初始設定名稱控制項兩列的readonly為true,處於不可編輯狀態。

自定義列勾選時,名稱控制項列readonly為false可編輯,允許使用者輸入。

自定義列不勾選時,自動清空名稱控制項列內容,同時關閉兩列可編輯狀態。

在這裡試了很多屬性,目前發現cellcontentclick的觸發是最有即時性效果的,具體操作**如下。

private void datagridview_cellcontentclick(object sender, datagridviewcelleventargs e)

else

}

使用WinFrom控制項 TreeView

使用winfrom控制項 treeview 為了後續課程的學習,今天老師講了乙個新的控制項 treeview,說實話,上課真的沒聽明白,回家看了一晚上才弄懂,哎,我太愚鈍了.定義乙個 treeview控制項命名為tv private void frmtreeview load object send...

WinFrom控制項雙向繫結

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

Winfrom的Panel控制項新增子控制項排序問題

用 迴圈給panel中新增多個控制項例項,並且設定dock屬性後,子控制項的排序是後新增的在最上面,這是因為winfrom機制是最新新增的控制項會排在最前面,而不是最後面。但是需求是先新增的要放在最上面,為了實現這個需求 可以把需要的控制項反向新增來解決這個問題,但是不是最好的解決方案。最好的解決方...