下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 C# winform DataGridView 的 18 種常見屬性 文章分類編程 C# winform DataGridView 屬性說明 取得或者修改當前單元格的內(nèi)容 設(shè)定單元格只讀 不顯示最下面的新行 判斷新增行 行的用戶刪除操作的自定義 行、列的隱藏和刪除 禁止列或者行的Resize 列寬和行崗以及列頭的高度和行頭的寬度的自動調(diào)整 凍結(jié)列或行 列順序的調(diào)整 行頭列頭的單元格 剪切板的操作 單元格的ToolTip的設(shè)置 右鍵菜單(ContextMenuStrip)的設(shè)置 單元
2、格的邊框、網(wǎng)格線樣式的設(shè)定 單元格衣示值的設(shè)定 用戶輸入時,單元格輸入值的設(shè)定 設(shè)定新加行的默認值 DataGridView取得或者修改當前單元格的內(nèi)容: 當前單元格指的是DataGridView焦點所在的單元格,它可以通過DataGridView對象的CurrentCell屬性取得。如果當前 單元格不存在的時候,返回Nothing(C#是null) /取得當前單元格內(nèi)容 Console.WriteLine(DataGridView1.CurrentCell.Value); /取得當前單元格的列Index Console.WriteLine(DataGridViewl.CurrentCell.
3、Columnlndex); /取得當前單元格的行Index Console.WriteLine(DataGridView1.CurrentCell.Rowindex); 另外,使用DataGridView.CurrentCellAddress屬性(而不是虎接訪問單元格來確定單元格所在的 行:DataGridView.CurrentCellAddress.Y 列:DataGridView.CurrentCellAddress.X this.dataGridViewl .RowCount 1) row = 0: this.dataGridViewl .CurrentCell = this.data
4、GridViewl 0. row; /向上遍歷 private void butt on 5_Click(object sen der, Eve ntArgs e) int row = this.dataGridViewl .CurrentRow.lndex -1; if (row 0) row = this.dataGridViewl .RowCount 1; this.dataGridViewl .CurrentCell = this.dataGridViewl 0. row; * 注恿:this.dataGridView 的索引器的參數(shù)是:columnindex, rowindex 或是
5、 columnName, rowindex 這與習慣不同。 DataGridView設(shè)定單元格只i賣: (5-7 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 1) 使用Readonly屬性 如果希望,DataGridView內(nèi)所有單元格都不可編輯,那么只要: /設(shè)置DataGridView!為只讀 DataGridViewl.Readonly = true;此時,用戶的新增行操作和刪除行操作也被屏蔽了。 如果希望,DataGridView內(nèi)某個單元格不可編輯,那么只要: /設(shè)置DataGridViewl的第2列整列單元格為只
6、讀 DataGridViewl.Columns1.Read Only = true; /設(shè)置DataGridView 1的第3行整行單元格為只讀 DataGridViewl .Rows2.Read Only = true; 設(shè)置DataGridView 1的0, 0單元格為只讀 DataGridViewl 0, 0.Readonly = true; 2) 使用EditMode屬性 DataGridView.EditMode屬性被設(shè)置為DataGridViewEditMode.EditProgrammatically時, 用戶就不能手動編輯單元格的內(nèi) 容了。但是可以通過程序,調(diào)用DataGrid
7、View.BeginEdit方法,使單元格進入編輯模式進行編輯。 DataGridViewl .EditMode = DataGridViewEditMode.EditProgrammatically; 3) 根據(jù)條件設(shè)定單元格的不可編輯狀態(tài) 當個個的通過單元格坐標設(shè)定單元格Readonly屬性的方法太麻煩的時候,你可以通過CellBeginEdit事件來取消單元 格的編輯。 /CellBeginEdit事件處理方法 private void DataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e
8、) DataGridView dgv = (DataGridView)sender; 是否可以進行編輯的條件檢査 if (dgv.Columnse.Columnlndex.Name = MColumnV & !(bool)dgv,Column2, e.Rowindex.Value) 取消編輯 e.Cancel = true; DataGridView不顯示最下面的新行: 通常DataGridView的最下面行是用戶新追加的行(行頭顯示 T。如果不想讓用戶新追加行即不想顯示該新行,可以 將 DataGridView 對象的 AllowUserToAddRows 屬性設(shè)置為 False /設(shè)置用戶
9、不能手動給DataGridViewl添加新行 DataGridViewl.AllowUserToAddRows = false; 但是,可以通過程序:DataGridViewRowCollection.Add 為 DataGridView 追加新行。 補足:如果 DataGridView 的 DataSource 綁定的是 DataView,還可以通過設(shè)置 DataView.AllowAdd 屬性為False來達到同樣的效果。 DataGridView判斷新增行: DataGridView的AllowUserToAddRows屬性為True時也就是允許用戶追加新行的場合下,DataGridVi
10、ew的最后行就 是新追加的行(行)。 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 使用DataGridViewRow.lsNewRow屬性可以判斷哪行是新追加的行。另外,通過DataGridView.NewRowIndex可以獲 取新行的行序列號. 在沒有新行的時候,NewRowIndex =。 DataGridView行的用戶刪除操作的自定義: 1) 無條件的限制行刪除操作。 默認時,DataGridView是允許用戶進行行的刪除操作的。如果設(shè)置DataGridView對象的AllowllserToDeleteRows屬性
11、 為False時,用戶的行刪除操作就被禁止了。 禁止DataGridViewl的行刪除操作。 DataGridViewl.AllowllserToDeleteRows = false; 但是,通過DataGridViewRowCollection.Remove還是可以進行行的刪除。 補足:如果DataGridView綁定的是DataView的話,通過DataView.AllowDelete也可以控制行的刪除。 2) 行刪除時的條件判斷處理。 用戶在刪除行的時候,將會引發(fā)DataGridView.UserDeletingRow事件。在這個事件里,可以判斷條件并取消刪除操作。 / DataGrid
12、Viewl 的 UserDeletingRow 事件 private void DataGridViewl_UserDelet泊gRow( object sender, DataGridViewRowCancelEventArgs e) 刪除前的用戶確認。 if (MessageBox.ShowC1認要刪除該行數(shù)據(jù)嗎? ”, ”刪除確認”, MessageBoxButtons.OKCancel. MessageBoxIcon.Question) != DialogResult.OK) 如果不是OK,則取消。 e.Ca ncel = true; DataGridView行、列的隱藏和刪除: 1)
13、行、列的隱藏 / DataGridViewl 的第列隱藏 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 DataGridView1.Columns0.Visible = false; / DataGridViewl 的第-行隱藏 DataGridViewl .Rows0.Visible = false; 2) 行頭、列頭的隱藏 /列頭隱藏 DataGridViewl .Colum nHeadersVisible = false; /行頭隱藏 DataGridViewl .RowHeadersVisible = false; 3
14、) 行和列的刪除 刪除名為-Column!0的列 DataGridViewl .Columns. Remove(” Column*! ”); 刪除第 i 列 DataGridViewl.Columns.RemoveAt(O); 刪除第一行 DataGridViewl .Rows.RemoveAt(O); 4) 刪除選中行 foreach (DataGridViewRow r in DataGridViewl .SelectedRows) if (Ir.lsNewRow) DataGridViewl .Rows.Remove(r); DataGridView禁止列或者行的Resize: 1) 禁
15、止所有的列或者行的Resize /禁止用戶改變DataGridViewl的所有列的列寬 DataGridViewl.AllowUserToResizeColumns = false; /禁上用戶改變DataGridViewl 0所有行的行高 DataGridViewl.AllowllserToResizeRows = false; 但是可以通過DataGridViewColumn.Width或者DataGridViewRow.Height屬性設(shè)定列寬和行高。 2) 禁止指定行或者列的Resize /禁止用戶改變DataGridView 1的第-列的列寬 DataGridViewl .Colum
16、ns0.Resizable = DataGridViewT riState.False; /禁止用戶改變DataGridViewl的第列的行寬 DataGridViewl .Rows0.Resizable = DataGridViewT riState. False: 關(guān)于NoSet: 當 Resizable 屬性設(shè)為 DataGridViewTriState.NotSet 時,實際上會默認以 DataGridView 的 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 AllowUserToResizeColumns 和All
17、owllserToResizeRows的屬性值進行設(shè)定。 比如:DataGridView.AllowUserToResizeColumns = False 且 Resizable 是 NoSet 設(shè)定時,Resizable = False 判斷 Resizable 是否是繼承設(shè)定 了 DataGridView 的 AllowUserToResizeColumns 和 AllowUserToResizeRows 的屈性 值, 可以根據(jù)State屬性判斷。如果State屬性含有ResizableSet,那么說明沒有繼承設(shè)定。 3) 列寬和行高的最小值的設(shè)定 第-列的最小列寬設(shè)定為100 DataG
18、ridView1.Columns0.MinimumWidth = 100; 第一行的最小行高設(shè)定為50 DataGridViewl .Rows0.MinimumHeight = 50; 4) 禁止用戶改變行頭的寬度以及列頭的高度 禁止用戶改變列頭的高度 DataGridViewl .Colum nHeadersHeightSizeMode = DataGridViewColum nH eadersHeightSizeMode.DisableResizing; 設(shè)置用戶改變行頭的寬度 DataGridViewl. RowHeadersWidthSizeMode = DataGridViewRow
19、HeadersWidthSizeMode.EnableResizing; DataGridView列寬和行高自動調(diào)整的設(shè)定: 1) 設(shè)定行高和列寬自動調(diào)整 /設(shè)定包括Header和所有單元格的列寬自動調(diào)整 DataGridViewl .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AIICells; /設(shè)定包括Header和所有單元格的行高自動調(diào)整 DataGridViewl .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AIICells; AutoSizeColumnsMode
20、屬性的設(shè)定值枚舉請參照 msdn 的 DataGridViewAutoSizeRowsMode 說明。 2) 指定列或行自動調(diào)整 第一列自動調(diào)整 DataGridViewl .Columns0.AutoSizeMode = DataGridViewAutoSizeColu mnM ode.DisplayedCells; AutoSizeMode 設(shè)定為 NotSet 時,默認繼余胸是 DataGridView.AutoSizeColumnsMode 屬性。 3) 設(shè)定列頭的高度和行頭的寬度自動調(diào)整 /設(shè)定列頭的寬度可以自由調(diào)整 DataGridViewl .Colum nHeadersHeig
21、htSizeMode = DataGridViewColum nH eadersHeightSizeMode. AutoSize; 設(shè)定行頭的寬度可以自由調(diào)整 DataGridViewl. RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAIIHeaders; 4) 隨時自動調(diào)整 a, 臨時的,讓列寬自動調(diào)整,這和指定AutoSizeColumnsMode 性樣。 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 讓DataGridVi
22、ewl的所有列寬自動調(diào)整下。 DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); 讓DataGridView 1的第列的列寬自動調(diào)整一下。 DataGridViewl.AutoResizeColumn(0, DataGridViewAutoSizeColumnMode.AIICells);上而調(diào)用的 AutoResizeColumns 和 AutoResizeColumn 當指定的是DataGridViewAutoSizeColumnMode.AIICells的時候,參數(shù)可以省略=即: DataG
23、ridViewl.AutoResizeColumn(O)和 DataGridViewl.AutoResizeColumns() b, 臨時的,讓行高自動調(diào)整 讓DataGridViewl的所有行高自動調(diào)整一下。 DataGridViewl.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells); 讓DataGridView 1的第-行的行高自動調(diào)整一下。 DataGridViewl .AutoResizeRow(Ot DataGridViewAutoSizeRowMode.AllCells);上而調(diào)用的 AutoResizeRows 和 Au
24、toResizeRow 當指定的是 DataGridViewAutoSizeRowMode.AIICells 的時候,參數(shù)可以省略。即:DataGridViewl.AutoResizeRow (0) 和 DataGridViewl .AutoResizeRows() C,臨時的,讓行頭和列頭自動調(diào)整 列頭高度自動調(diào)整 DataGridViewl.AutoResizeColumnHeadersHeight(); 行頭寬度自動調(diào)整 DataGridViewl.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSiz
25、eToAIIHeaders); 關(guān)于性能: 通過AutoSizeColumnsMode或者AutoSizeRowsMode屬性所指定的單元格進行自動調(diào)整時,如果調(diào)整次數(shù)過于多那么將 可能導致性能下降, 尤其是在行和列數(shù)比較多的情況下。在這時用DisplayedCells代替AllCells能減少非所見的單元格的調(diào)整,從而捉高性 DataGridView凍結(jié)列或行 1) 列凍結(jié) DataGridViewColumn.Frozen屬性為True時,該列左側(cè)的所有列彼固定,橫向滾動時固定列不隨滾動條滾動而左右移 動。這對于重要列固定顯示很有用。 / DataGridView 1的左側(cè)2列固定 Dat
26、aGridViewl.Columns1.Froze n = true; 但是,DataGridView.AllowllserToOrderColumns = True時,固定列不能移動到非固定列,反之亦然。 2) 行凍結(jié) DataGridViewRow.Frozen屬性為True時,該行上而的所有行被固定,縱向滾動時固定行不隨滾動條滾動而上下移動。 / DataGridView 1 的上 3 行固定 DataGridViewl .Rows2. Froze n = true; DataGridView列順序的調(diào)整 設(shè)定DataGridView的AllowUserToOrderColumns為Tr
27、ue的時候.用戶可以自由調(diào)整列的順序。 當用戶改變列的順序的時候,其本身的Index不會改變.但是Displayindex改變八你也可以通過程序改變Displayindex 來改變列的最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 順序。列順序發(fā)生改變時會引發(fā)ColumnDisplaylndexChanged事件: / DataGridView!的 ColumnDisplaylndexChanged 事件處理方法 private void DataGridView1_ColumnDisplaylndexChanged(objec
28、t sender, DataGridViewColumnEventArgs e) Console.WriteLine(M0的位置改變到1: e.Column.Name, e.Column.Displaylndex); 行頭列頭的單元格 C# 改變DataGridViewl的第列列頭內(nèi)容 DataGridViewl .Columns0.HeaderCell.Value =第咧”; 改變DataGridView 1的第行行頭內(nèi)容 DataGridViewl .Rows0.HeaderCell.Value = ”第行: /改變DataGridViewl的左上頭部單元內(nèi)容 DataGridViewl.
29、TopLeftHeaderCell. Value = ”左上豎 另外你也可以通過HeadefText來改變他們的內(nèi)容。 C# 改變DataGridViewl的第列列頭內(nèi)容 DataGridViewl .Columns0.HeaderText =第列二 DataGridView剪切板的操作 TOP DataGridView.ClipboardCopyMode 屬性被設(shè)定為 DataGridViewClipboardCopyMode.Disable 以外的情況時,Ctrl + C按下的時候,被選擇的單元格的內(nèi)容會拷貝到系統(tǒng)剪切板內(nèi)。格式有:Text, UnicodeText, Htmb Comma
30、SeparatedValueo 可以總接粘貼到 Excel 內(nèi) ClipboardCopyMode 還可以設(shè)定 Header 部分是否拷貝:EnableAlwaysIncludeHeaderText 拷貝 Header 部分. EnableWithoutHeaderText 則不拷貝。默認是 EnableWithAutoHeaderText , Header 如果選擇了的話,就拷貝。 1) 編程方式實現(xiàn)剪切板的拷貝 Clipboard.SetDataObject(DataGridView1.GetClipboardContent() 2) DataGridView的數(shù)據(jù)粘貼 實現(xiàn)剪切板的拷貝比
31、較容易,但是實現(xiàn)DataGridView的直接粘貼就比較難 C Ctrl + V按下進行粘貼時, DataGridView沒有提供方法,只能自己實現(xiàn)。 以下,是粘貼時簡單的事例代碼,將拷貝數(shù)據(jù)粘貼到以選擇單元格開始的區(qū)域內(nèi)。 C# /當前單元格是否選擇的判斷 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 if (DataGridViewl .CurrentCell = null) return; int insertRowIndex = DataGridViewl .CurrentCell.Rowindex; 獲取剪切板的內(nèi)容
32、,并按行分割 string pasteText = Clipboard.GetText(); if (string.IsNullOrEmpty(pasteText) return; pasteText = pasteText. Replace(w ”,H ”); pasteText = pasteText.Replacef * *); pasteText.TrimEnd(new char 1 * ); stringQ lines = pasteText.Splitf *); bool isHeader = true; foreach (string line in lines) 是否是列頭 i
33、f (isHeader) isHeader = false; con tinue; /按Tab分割數(shù)據(jù) stringQ vals = line.Split(* *); 判斷列數(shù)是否統(tǒng)一 if (vals.Length 1 != DataGridViewl .ColumnCount) throw new ApplicationException(M粘貼的列數(shù)不左確=”); DataGridViewRow row = DataGridViewl.RowsinsertRowlndex; 行頭設(shè)定 row.HeaderCell.Value = vals0; 單元格內(nèi)容設(shè)定 for (int i = 0
34、; i Row Column DataGridView = CellContextMenuStripNeeded RowContextMenuStripNeeded 事件 利用CellContextMenuStripNeeded事件可以設(shè)定單元格的右鍵菜單,尤其但需要右鍵菜單根據(jù)單元格值的變化而變化 的時候。比起使用循環(huán)遍歷,使用該事件來設(shè)定右鍵菜單的效率更趾 但是,在DataGridView使用了 DataSource綁定而 且是VirtualMode的時候,該事件將不被引發(fā)。 C# / CellContextMenuStripNeeded 事件處理力法 private void DataG
35、ridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e) DataGridView dgv = (DataGridView)sender; if (e.Rowindex 0) / 列頭的 ContextMenuStrip 設(shè)定 e.ContextMenuStrip = this.ContextMenuStripl; else if (e.Columnindex 0) / 行頭的 ContextMenuStrip 設(shè)定 e.ContextMenuStr
36、ip = this.ContextMenuStrip2; else if (dgve.ColumnIndex, e.Rowindex.Value is int) /如果單元格值是整數(shù)時 最新資料推薦 最新精品資料整理推薦.更新于二O二 O 年十二月十八日2020年12月18日星期五19:36:31 e.ContextMenuStrip = this.ContextMenuStrip3; 同樣,可以通過RowContextMenuStripNeeded事件來設(shè)定行的右鍵菜單。 C# / RowContextMenuStripNeeded 事件處理方法 private void DataGridV
37、iew1_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e) DataGridView dgv = (DataGridView)sender; / 當Columnr*列是 Bool 型且為 True 時、設(shè)定其的 ContextMenuStrip object boolVal = dgvMColumnV e.Rowindex.Value; Console.WriteLine(boolVal); if (boolVal is bool & (bool)boolVal)
38、 e.ContextMenuStrip = this.ContextMenuStripl; CellContextMenuStripNeeded 事件處理方法的參數(shù)中.e.Columnlndex=-1 J *示行頭、e.Rowlndex=1_| 農(nóng)示列 頭。RowContextMenuStripNeeded 則不存在e.Rowlndex=1的情況。 DataGridView的單元格的邊框、網(wǎng)格線樣式的設(shè)定 1) DataGridView的邊框線樣式的設(shè)定 DataGridView的邊框線的樣式是通過DataGridView.BorderStyle屬性來設(shè)定的。BorderStyle屬性設(shè)定值是
39、個 Borderstyle 枚舉:FixedSingle (單線,默認)、Fixed3D、None。 2) 單元格的邊框線樣式的設(shè)定 竜元格的邊框線的樣式是通過DataGridView.CellBorderStyle屬性來設(shè)定的。CellBorderStyle屬性設(shè)定值是 DataGridViewCellBorderStyle 枚舉。(詳細參見 MSDN) 另外,通過 DataGridView.ColumnHeadersBorderStyle 和 RowHeadersBorderStyle 屬性可以修改 DataGridView 的頭部 的單元格邊框線樣式。屬性設(shè)定值是DataGridView
40、HeaderBorderStyle枚舉。(詳細參見MSDN) 3) 單元格的邊框顏色的設(shè)定 單元格的邊框線的顏色可以通過DataGridView.GridColor B性來設(shè)定的。默認是ControlDarkDark o但是只有在 CellBorderStyle彼設(shè)定為Single、SingleHorizontaL SingleVertical的條件下才能改變其邊框線的顏色。同樣, ColumnHeadersBorderStyle 以及 RowHeadersBorderStyle 只有在彼設(shè)定為 Single 時,才能改變顏色。 4) 單元格的上下左右的邊框線式樣的單獨設(shè)定 CellBorderStyle只能設(shè)定單元格全部邊框線的式樣。要單獨改變單元格某邊邊框式樣的話,需要用到 DataGridV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度音樂節(jié)場地借用與現(xiàn)場管理服務(wù)合同3篇
- 2024軟件版權(quán)授權(quán)與維護服務(wù)合同2篇
- 2024年餐飲行業(yè)合伙人加盟協(xié)議模板版B版
- 2024年版物聯(lián)網(wǎng)技術(shù)研發(fā)與應(yīng)用合同
- 2024幼兒園幼兒藝術(shù)教育課程開發(fā)與實施勞務(wù)合同3篇
- 2024年股權(quán)質(zhì)押融資借款具體合同版
- 2025年度數(shù)據(jù)中心機房租賃及智能化升級服務(wù)合同3篇
- 2024年經(jīng)銷商銷售權(quán)益合同一
- 2024版承包茶館經(jīng)營合同
- 2024年貴族小學教師聘請協(xié)議3篇
- 核醫(yī)學科PDCA案例
- GC2級壓力管道安裝質(zhì)量保證體系文件編寫提綱
- ABB斷路器參數(shù)調(diào)試講義
- 管廊維護與運營績效考核評分表
- 預(yù)應(yīng)力混凝土簡支小箱梁大作業(yè)計算書
- 陽宅形法及巒頭
- 尾礦庫施工組織設(shè)計
- 投標文件封標用封面、密封條11
- 300MW火電廠水汽氫電導率超標的原因及處理方法
- 國際文憑組織IBO簡介
- 星巴克營銷策劃方案(共24頁)
評論
0/150
提交評論