1. 程式人生 > >C#、Java中的一些小功能點總結(持續更新......)

C#、Java中的一些小功能點總結(持續更新......)

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(ref
m); 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中的一些小功能點總結(持續更新......)