让窗体不响鼠标双击事件
重写DefWndProc函数
代码如下:
//鼠标双击失效事件
protected override void DefWndProc(ref Message m) { byte msg = 0x00A3; if(m.Msg == Convert.ToInt32(msg)) { return; } base.DefWndProc (ref m); }
|
整个应用程序退出窗体关闭按钮时事件处理
在窗体的Closing事件中处理,代码如下:
private void frmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e) { //程序退出
if(MessageBox.Show("确定退出吗?","退出",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK) { Application.ExitThread(); } else { e.Cancel = true; } }
|
一个ComboBox控件输入字符以后按回车键Enter转到下一个TextBox框,怎么实现?
代码如下:
private void cmbColor_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if(e.KeyChar == 0xd) { this.txtPower.Focus(); } }
|
整个窗体上的控件Tab键控制
设置form的KeyPreview = true,然后调整form上组件的tabIndex,最后在form的KeyPress事件里加入以下代码
private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { SendKeys.Send("{TAB}"); } }
|
在Winform程序中, 如何让任一个MDI子窗体只打开一次?
两种方法解决,代码如下:
第一种方案:
private void menuItem6_Click(object sender, System.EventArgs e) { System.Windows.Forms.Form[] mdiForm=this.MdiChildren; bool openFlage=false;//标识窗体是否打开(true:已打开了一个窗体)
foreach (Form fr in mdiForm) { //MessageBox.Show(fr.Name);
if (fr.Name=="frmSearchOrder") {//已打开一个窗体则激活并显示出来
fr.Activate(); openFlage=true; break; } } if (!openFlage) {//没有打开窗体则新建并显示出来
frmSearchOrder nPTCIM=new frmSearchOrder(); nPTCIM.MdiParent=this; nPTCIM.Show(); } }
|
第二种方案:
先声明窗体的变量 private Form1 midForm; private void menuItem6_Click(object sender, System.EventArgs e) { if(midForm==null||midForm.IsDisposed) { midForm=new Form1(); } else { midForm.Activate(); } }
|
LinkLabel控件,要实现链接到网页,事件方法如下:
private void linkAddress_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { //打开网页地址窗口 System.Diagnostics.Process.Start("IEXPLORE.exe", ""); }
|
阅读(1121) | 评论(1) | 转发(0) |