C#、Java中的一些小功能點總結(持續更新......)
阿新 • • 發佈:2017-07-11
grid datagrid item 其他 cnblogs hid roc oid sha
前言:在項目中,有時候一些小的功能點,總是容易讓人忽略,但是這些功能加在項目中往往十分的有用,因此筆者在這裏總結項目中遇到的一些實用的小功能點,以備用,並持續更新......
1.禁用DataGridView表頭的排序功能
1 /// <summary> 2 /// 禁止點擊列表頭進行排序 3 /// </summary> 4 /// <param name="dgv">當前DataGridView控件</param> 5 private void DisableSortOrder(DataGridView dgv)6 { 7 for (int i = 0; i < dgv.ColumnCount; i++) 8 { 9 dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; 10 } 11 }
2.屏蔽雙擊標題欄窗口變小、點擊標題欄移動窗口事件
1 /// <summary> 2 /// 屏蔽雙擊標題欄變小事件、點擊標題欄移動窗口事件 3 ///</summary> 4 /// <param name="m"></param> 5 protected override void WndProc(ref Message m) 6 { 7 //雙擊標題欄、移動窗口事件 8 if (m.Msg != 0xA3 && m.Msg != 0x0003 && m.WParam != (IntPtr)0xF012) 9 { 10 base.WndProc(refm); 11 } 12 13 }
註:在需要不被移動的窗口中添加上述代碼,其他具體消息,可查詢相關資料,進行控制。
m.Msg = 0xA3 -> 雙擊標題欄消息
m.Msg = 0x0003 && m.WParam = (IntPtr)0xF012 -> 移動窗體消息
3. 登錄時,當正確輸入口令後,關閉登錄窗口
註:這個功能其實還比較重要,因為如果我們直接this.hide()或this.close()是不行的,這是就需要一個小技巧進行控制,具體如下代碼:
1.在Program.cs中如下:
1 LoginForm lf = new LoginForm(); 2 lf.ShowDialog(); 3 if (lf.DialogResult == DialogResult.OK) 4 Application.Run(new SelectItemForm());
2.然後在登錄窗口中,當登錄成功後進行如下控制:
this.DialogResult = DialogResult.OK;
this.Close();
通過以上兩步就可以實現關閉登錄界面,從而轉到所需的主界面中。
持續更新中......by Shawn Chen 2017.7.10 晚
C#、Java中的一些小功能點總結(持續更新......)