InfoDataGridView


 

【功能說明】

用途:使用於 Client 端,繼承自 DataGridView 元件,用以多列與多行方式顯示資料,並可進行編輯。

 

【元件屬性】

Name( 名稱 )(string)

元件名稱,用於識別該元件。

Columns( 欄位明細 )(collection)

設定要顯示的欄位明細。每個欄位有以下屬性:

Name( 名稱 )(string) :該列的名稱,用於識別該列。

DataProperyName ( 欄位名稱 )(string) :設定該列要顯示的欄位名稱。

DefaultCellStyle ( 顯示格式設定 )( enum) :此欄位專屬的格式,可設定顯示顏色、字體、對齊方式以及資料顯示的格式 ( 如日期格式與數值格調等 )

HeaderText ( 抬頭 )(string) :設定每個欄位的表頭標題。

Visible( 顯示 )( bool) :設定該欄位是否可以看見,為 False 代表隱藏。

ReadOnly ( 唯讀 )( bool) :設定此欄位是否可以編輯,為 False 代表不能編輯。如果 Column 設為 ReadOnly ,當 User 按下 Tab Enter 鍵時可以跳過。

Resizable( 調整大小 )( bool) :設定此欄位是否可以調整大小。

SortMode ( 排序模式 )( enum) :設定此欄位的排序模式,有 NotSortable ( 沒有排序功能 ), Automatic( 自動 ),  Programmatic ( 程式控制 )

Frozen( 凍結 )( bool) :設定此欄位是否有凍結在畫面上,如為 True 時,左邊的所有欄位 ( 包含自己 ) 將會自動凍結,只能捲定右邊的欄位。

Width( 顯示寬度 )(int32) :欄位的顯示寬度。

AutoSizeMode ( 自動寬度模式 )( enum) :設定此欄位寬度的模式,請參考下文中的 AutoSizeColumnMode 屬性。

  ToolTipText( 提示訊息 )(string) :當焦點停在本欄位所提示的頂層訊息。

ContextMenuStrip ( 背景功能表 )( MenuStrip) :此欄位可配合設定一個 MemuScrip 功能表。

ColumnType ( 欄位類別 )( enum) :該列的欄位類別, ColumnType 共有以下幾種,其中 Info 開頭為 EEP 的元件,其他為 C #內定的元件類別。

1.    InfoDataGridViewCalendarColumn ( 日期列 ) :要顯示為日期格式,可用下拉方式點出日曆以方便 User 選擇。其配合的欄位可以為日期類型,也可以為字串 VARCHAR(8) 類型,存放格式為 YYYYMMDD

2.    InfoDataGridViewRefValColumn ( 關連選單列 ) :可以配合使用 InfoRefVal 元件,在做資料編輯時,可透過下拉方式點出關聯 Table 內的相關資料,以方便 User 選擇。 RefValColumn CheckData True 時,如果没有找到輸入值 , 更正讓 Cursor 留在 RefValColumn 上。

3.    InfoDataGridViewExpressionColumn ( 運算式列 ) :用來以運算式的方式來顯示資料,例如,可以利用 ”Quantity*Price” 這種方式來表示此欄位是由 Quantity Price 欄位相乘的結果。

4.    InfoDataGridViewComboBoxColumn ( 資料下拉列 ) :與上述的關連選單列 ( RefVal) 相似,配合 InfoComboBox 元件,在資料編輯時可以讓 User 下拉方式點出 ComboBox 的資料。不同的是, RefVal 列是點出一個關聯資料的表單,此視窗是可以移動位置的,而 ComboBox 列則會固定是在該欄位下方顯示出 ComboBox

5.    DataGridViewTextBoxColumn ( 資料列 ) :這是最常用的欄位類型,如沒有特殊要求,一般都使用此類別。

6.    DataGridViewLinkColumn ( 鏈接列 ) :可以使顯示的內容顯示為鏈接狀態 ( HyperLink) ,用此來連結其他的網頁或表單資料,連結時可配合 CellClick 事件。

7.    DataGridViewImageColumn ( 圖示列 ) :可以用來顯示圖型的欄位。

8.    DataGridViewComboBoxColumn ( 下拉列 ) :此類型的執行效果與 InfoDataGridViewComboBoxColumn 一致,因為 InfoDataGirdViewComboBoxColumn 是繼承自本類型加強而成的,多了可在下拉時顯示兩個欄位,並且傳回可以傳回名稱的欄位,而不是傳回邊號的欄位。

9.        DataGridViewCheckBoxColumn ( 勾選列 ) :此類可以顯示為勾選狀態,使用 CheckBox 元件來表示。

10.    DataGridViewButtonColumn ( 按鈕列 ) :此類可將 Button 按鈕來顯示在 Grid 中,用來讓 User 更易操作 Grid 的功能。

11.    DataGridViewIndentityColumn ( 自動序號 ) 可以自動列出 DataGridView Position 次序, 為一個 Integer, 可不必再使用欄位來顯示。

12.    InfoDataTimeBoxColumn ( 日期列 ) :此日期列與 InfoDataTimeViewCanlendarColumn 的差別是,此欄位元類型在顯示時會有日期格式的下劃線提示。

RefValue ( 關聯的 InfoRefVal)(string) :當 ColumnType RefValColumn ComboBoxColumn 時就可以使用本屬性,用來設定與其對應的 InfoRefVal InfoComboBox

Expression( 運算式 )(string) :當 ColumnType ExpressionColumn 時就可以使用本屬性,用來設定要顯示內容的運算式,可以直接用欄位名稱來設定。例如: Quantity*Price ,用來顯示小計金額。

FlatStyle ( 外觀型態 )( enum) :當 ColumnType ButtonColumn CheckBoxColumn 時所使用的屬性,可設定為 Flat( 平面 ) Popup( 自動開啟其他 object) Standard( 立體形狀 ) System( Windows 的預設形狀 )

Text( 抬頭文字 )(string) :當 ColumnType ButtonColumn LinkColumn 時所使用的屬性,可設定 Button/ LinkLabel 的抬頭文字。如果為 LinkColumn 時須配合將 UseColumnTextForLinkValue 設為 True 才會有效,否則都會顯示欄位內容值。

TrueState ( 邏輯型態 )( bool) ColumnType CheckBoxColumn 時,是否允許有三種狀態的 CheckBox ,為 True 時代表有三種狀態,須配合 TrueValue ( 勾選值 ) FalseValue ( 無勾選值 ) IndeterminateValue ( 模糊值 ) 等設定;為 False 時只須用到 TrueValue FalseValue 等設定值。

DisplayStyle ( 顯示樣式 )( enum) :當 ColumnType ComboBox InfoComboBox 時使用,可設定 ComboBox DroplDownButton Nothing 等樣式。另外由 DisplayStyleForCurrentCell =True/False 來控制是否僅目前 Cell 顯示此 ComboBox

DataSource ( 資料源 )( DataSource) :當 ColumnType ComboBox InfoComboBox 時使用,可選擇 ComBoBox 的資料來源,一般是對應到 InfoBindnig 。配合此屬性還要設定 DisplayMember ( 顯示欄位名稱 ) ValueMember ( 內容值欄位名稱 )

Items( 資料內容 )(string[]) :當 ColumnType ComboBox InfoComboBox 時使用,因不選擇使用資料表來源時,可在此直接設定 ComboBox 的項目內容。

ImageLayout ( 圖型排列 )( enum) :當 ColumnType ImageColumn 時使用,可設定為 NotSet ( 無定義 ) Normal( 正常原圖大小 ) Stretch( 自動依比例放大 ) Zoom( 自動依 Cell 大小縮放,不按比率 ) 。另有一個 Image 屬性可定義預設的圖樣,因為可能此欄位沒有圖型內容。

LinkColor ( 連結顏色 )(Color) :當 ColumnType LinkColumn 時使用,代表連結的文字顏色。另外 ActvieLinkColor 則代表 Mouse 移到此所顯示的回應顏色, VisitedLinkColor 則代表已訪問過之後之鏈結文字的顏色 ( 需配合 TraceVisitedState =True 才會有效 )

DataMember ( 資料成員 )(string)

對應的資料表名稱,此可以不必設定,因為在 EEP 系統中皆統一以 DataSource 去對應到 InfoBindingSource 這個對象。

DataSource ( 資料源 )( DataSource)

對應的資料集,在此直接對應到 InfoBindingSource 即可,讓 InfoBindingSource 與本元件產生互動行為。

DeleteHotKey ( 刪除熱鍵 )(string)

用來設定刪除的熱鍵,系統刪除目前筆資料的方法是點在 Row Header , 再按「 Del 」鍵即可刪除。

EnterEnable (Enter 鍵致能 )( bool)

控制 Grid 可以使用 Enter 鍵進入編輯 Cell 的狀態,並且可用 Enter 鍵進入下一個欄位。

SureDelete ( 確認刪除 )( bool)

設定在刪除資料前是否提示確認,如果設為 True ,則刪除資料時會提示 User 是否確定刪除。

TotalActive ( 加總啟用 )( bool)

是否要在 Grid 中顯示欄位小計的內容。此時會在 Grid 的下方多一個 Row 來顯示加總。

TotalBackColor ( 加總背景顏色 )(color)

加總列的背景顏色。

TotalCaption ( 加總抬頭 )(string)

加總的抬頭顯示,會顯示在 Row 的表頭上,所以不宜輸入太多的文字內容。

TotalCaptionFont ( 加總抬頭字型 )(font)

TotalCaption 的字型。

TotalColumns ( 加總欄位明細 )(collection)

設定那些欄位要有加總功能,每個 Colleciton 定義如下:

ColumnName ( 名稱 )(string) :要小計的欄位名稱。

ShowTotal ( 是否顯示加總值 )( bool) :設定該加總值是否要顯示出來。

TotalAlignment ( 對齊方式 )( enum) :加總值的對齊方式,有 Left Right Center

TotalMode ( 加總方式 )( enum) :設定每個欄位的加總方式,有 None( ) Sum( 加總 ) Count( 計次 ) Max( 最大值 ) Min( 最小值 ) Average( 平均 )

TotalFont ( 加總字型 )(font)

加總數值的字型。

AllowUserToAddRows ( 允許新增 )( bool)

設定 Grid 是否可以新增資料。

AllowUserToAddRows ( 允許新增 )( bool)

設定 Grid 是否可以刪除資料。

AllowUserToOrderColumns ( 允許移動欄位 )( bool)

設定 Grid 是否可以用 Mosue 拖拉欄位表頭來達到更換欄位次序的目的。

AllowUserToResizeColumns ( 允許調整欄寬 )( bool)

設定 Grid 是否可以用 Mosue 來調整欄位寬度。 ( Mouse 在欄位表頭間的中間線來調整 )

AllowUserToResizeRows ( 允許調整列高 )( bool)

設定 Grid 是否可以用 Mosue 來調整任一列高度。 ( Mouse 在列表頭間的中間線來調整 )

DefaultCellStyle ( 顯示格式設定 )( C ellStyle )

所有欄位的預設格式,可設定顯示顏色、字型、對齊方式等等。

AlternatingRowsDefaultCellStyle ( 列間格格式設定 ) ( CellStyle)

可以設定間格的資料列預設格式,與 DefaultCellStyle 一起搭配,控制奇數列與偶數列不同顏色與字型。

AutoSizeColumnsMode ( 自動欄位寬度 ) ( enum)

可以設定自動處理欄位寬度大小,可設定 AllCells ( 依所有所以欄位的內容決定大小,包含表頭 ) AllCellsExceptHeader ( 依所有欄位的內容決定大小,表頭除外 ) , DisplayedCellsExceptHeader( 依畫面上所有欄位的內容決定大小,表頭除外 ), DisplayedCells( 依畫面上所有欄位的內容決定大小,包含表頭 ),Fill ( 根據所有欄位與 Grid 寬度情況自動決定 )

AutoSizeRowsMode ( 自動列高度 ) ( enum)

可以設定自動處理列高度大小,可設定 AllCells ( 依所有所以欄位的內容決定高度,包含表頭 ) AllCellsExceptHeader ( 依所有欄位的內容決定高度,表頭除外 ) , DisplayedCellsExceptHeader( 依畫面上所有欄位的內容決定高度,表頭除外 ), DisplayedCells( 依畫面上所有欄位的內容決定高度,包含表頭 ),Fill ( 根據所有欄位與 Grid 高度情況自動決定 ) AllHeader ( 依表頭的內容做為每 Row 的高度 )

BackGroundColor ( 背景顏色 )( Color)

沒有資料區域之背景顏色。

BorderStyle ( 邊框型態 ) ( enum)

Grid 的邊框型態,可設定 None( 無框 ) FixedSingle ( 單框 ) Fiexed3D( 立體框 )

CellBorderStyle ( 欄位格邊框型態 ) ( enum)

Grid 內每個 Cell 的邊框型態,可設定 None( 無框 ) Custom( 自定 ) Raised( 浮起 ) RaisedHorizontal ( 橫浮起線 ) RaiseVertical ( 直符起線 ) Single( 單框 ) SingleHorizontal ( 橫單線 ) SingleVertical ( 直單線 ) SunKen ( 沉下 ) SunKenHorizontal ( 橫沉下線 ) SunVertical ( 直沉下線 )

Dock( 對齊方式 ) ( enum)

Grid 的對齊方式,可設定 None( ) Top( 靠上 ) Bottom( 靠下 ) Right( 靠右 ) Left( 靠左 ) Fill( 佔滿 )

EditMode ( 編輯啟動方式 ) ( enum)

用來設定 Grid 的編輯啟動方式,可設定為 EditOnEnter ( Enter 鍵啟動 ) EditOnF2( F2 鍵啟動 ) EditOnKeystroke ( 任一個鍵 ) EditOnKeystrokeOrF2( 任一個鍵與 F2) EditProgrammatically ( 以程式控制 )

Enabled( 致能 )( bool)

是否可以致能。

MultiSelect ( 多筆複選 )( bool)

是否可以多筆複選。

ReadOnly ( 唯讀 )( b ool )

是否為唯讀的情況,不能新增更改刪除。

Visible( 顯示 )( bool)

是否要顯示。

 

【事件】

請參閱 VS 有關 DataGridView 元件 Event

 

【功能函數】

請參閱 VS 有關 DataGridView 元件 Method

 

範例

DataGridView 中取出被選取資料內容值

infoDataGridView.SelectedRows 就是當前選中的 Row

infoDataGridView . SelectedRows[index].Cells[index].Value 目前資料的 值。

 

Detail 不是主鍵的欄位, GridView 做到可以新增卻不能更改

可以在 Detail GridView 設定 CellBeginEdit 事件 ,如下 :

private voidinfoDataGridView1_CellBeginEdit( objectsender, DataGridViewCellCancelEventArgs e)

{

if  (e.RowIndex != infoDataGridView1.NewRowIndex) // 更改而不是新增

 {

        if(e.ColumnIndex == 不希望修改的欄位在的列號 )

       {

               e.Cancel = true; // 拒絕修改

        }

 }

}

 

GridView 取值 如下 :

String custid= (( DataGridViewRow) infoDataGridView1. CurrentRow ).Cells [" custidDataGridViewTextBoxColumn"]. Value.ToString ();

 

在某一個 DataGridViewTextBoxColumn 中改變顯示内容,可 DataGridView CellValueChanged 事件中,如下:

if (infoNavigator1.CurrentState == "Editing" ||infoNavigator1.CurrentState == "Inserting")

{

   if ( e.ColumnIndex== 需要修改的 位的列 )

  {
      if( InfoDataGridView[ e.ColumnIndex, e.RowIndex]. Value.ToString().Length < 4)

       InfoDataGridView [ e.ColumnIndex, e.RowIndex].Value = "00" + InfoDataGridView[ e.ColumnIndex, e.RowIndex]. Value.ToString();

  }

}

 

 


Converted from CHM to HTML with chm2web Pro 2.85 (unicode)