在做管理軟體時,常常需要**輸入功能。**輸入極大地加快了資料輸入,提高了工作效率,當然也提高了軟體的競爭性。筆者最近用c#在做一套crm時,成功地使用c# 2005裡面的**控制項datagridview實現了**輸入功能,現在就把具體實現與各位分享:
1. 初始化工作
(1) 在vs 2005 裡面新建乙個c# winform 應用程式: datagridviewtest
(2) 在窗體form1上拖乙個datagridview控制項:datagridview1
(3) 在datagridview1裡新增兩個列:
column1:
型別:datagridviewcomboboxcolumn
headertext:時間
datapropertyname:dutytime
column2:
型別:datagridviewtextboxcolumn
headertext:時間
datapropertyname:dutytime
(4)在form1類中新增兩個私有屬性:
private datatable m_table;//輸入組合框控制項的下拉資料
private datatable m_datatable;//與**繫結的datatable,即使用者輸入的最終資料
(5)在form1類裡面定義乙個結構體
public struct myrowdata
public int no;
public string enday;
public string ***ay;
}(6) 在form1的load事件form1_load(object sender, eventargs e) 加上以下初始化**:
this.datagridview1.allowusertoaddrows = true;
this.datagridview1.allowusertodeleterows = true;
this.datagridview1.autogeneratecolumns = false;
datacolumn dc1, dc2, dc3
dc1 = new datacolumn("no", typeof(int));
dc2 = new datacolumn("enday", typeof(string));
dc3 = new datacolumn("***ay", typeof(string));
m_table.columns.clear();
m_table.columns.addrange(new datacolumn );
myrowdata datas = new myrowdata[7];
this.m_table.rows.clear();
foreach (myrowdata idata in datas)
datacolumn datadc1, datadc2;
datadc1 = new datacolumn("dutytime", typeof(int));
datadc2 = new datacolumn("dutyperson", typeof(string));
m_datatable.columns.clear();
m_datatable.columns.addrange(new datacolumn );
m_datatable.rows.clear();
column1.datasource = this.m_table;
column1.displaymember = "***ay";
column1.valuemember = "no";
this.datagridview1.datasource = m_datatable;
2.訊息處理(核心)
protected override bool processcmdkey(ref system.windows.forms.message msg, system.windows.forms.keys keydata) //啟用回車鍵
else }
} if (isdatagridview1) //是否處於datagridview1 上
break;
case keys.enter:
if (this.datagridview1.currentcell is datagridviewcomboboxcell
¦ ¦ this.datagridview1.currentcell is datagridviewtextboxcell
)//處於輸入格
");
if (this.activecontrol is system.windows.forms.datagridviewcomboboxeditingcontrol
¦ ¦ this.activecontrol is system.windows.forms.datagridviewtextboxeditingcontrol
) ");
} else//非輸入狀態,將轉入輸入狀態
");
} else //combobox,快捷按鍵f4,彈出下拉框
");
} }
} else//處於非輸入格
");
} return true;
break;
} }
} return false;
}
c 控制項 datagridview
datagridview繫結資料,同樣可以檔案讀取資料 迴圈賦值新增到datatable private void datablind datagridview內新增其他控制項 可新增button datagridviewbuttoncolumn checkbox datagridviecheckb...
C 筆記 DataGridView使用
1 databingcomplete datasource,datamember,or bindingcontext property changes.data guid 7a43cd5e90a65cb8c6f18047358f4587 當資料來源的內容更改時,或者當 datasource data...
C 中DataGridView操作技巧
複製 如下 region 操作datagridview 初始化datagridview屬性 要處理的datagridview 允許使用者新增行 允許使用者刪除行 是否顯示包含行標題的列 列標頭高度大小模式 是否多選 是否唯讀 列頭寬度 列選擇模式 public virtual void initse...