前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新......
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 晚
时间: 2024-10-18 06:38:20