C# 开发小技巧总结

1.一个应用程序只能被用户打开一次
Process mobj_pro =Process.GetCurrentProcess(); Process[] mobj_proList=Process.GetProcessesByName(mobj_pro.ProcessName); if(mobj_proList.Length>1) { MessageBox.Show("当前的应用程序已打开!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); return; }
2.一个框架窗口下只打开一个子窗口
CustomerAdd pobj_CustomerAdd; Form pobj_CustomerAdd_Return=CheckIsExit("CustomerAdd"); if(pobj_CustomerAdd_Return==null) { pobj_CustomerAdd=new CustomerAdd(); OpenSheet(pobj_CustomerAdd); } else { OpenSheet((CustomerAdd)pobj_CustomerAdd_Return); } void OpenSheet(Form pobj_form) { pobj_form.MdiParent=this; pobj_form.Show(); } /**//// <summary> /// 判断窗口是否存在 /// </summary> /// <param name="ps_windowName">窗口的名称</param> /// <returns>存在返回此窗口的实例 不存在返回null</returns> Form CheckIsExit(string ps_windowName) { for(int i=0;i<this.MdiChildren.Length;i++) { if(this.MdiChildren[i].Name==ps_windowName) { return this.MdiChildren[i]; } } return null; }
3.弹出式窗口显示渐变效果
在页面上添加一个timer控件fadeTimer,interval设为50
类的实例变量为
private m_showing=true;
在form_load中写:
Opacity = 0.0;
            Activate();
            Refresh();
            fadeTimer.Start();
            Refresh();    在timer控件的Tick事件中写:

if (m_showing)
            {
                double d = 1000.0 / fadeTimer.Interval / 100.0;
                if (Opacity + d >= 1.0)
                {
                    Opacity = 1.0;
                    fadeTimer.Stop();
                }
                else
                {
                    Opacity += d;
                }
            }
            else
            {
                double d = 1000.0 / fadeTimer.Interval / 100.0;
                if (Opacity - d <= 0.0)
                {
                    Opacity = 0.0;
                    fadeTimer.Stop();
                }
                else
                {
                    Opacity -= d;
                }
            }
4.在控件textbox中实现按回车键相当于tab键的作用
public class OSTextBox:TextBox { public OSTextBox() { } bool mb_IsKeyEnter=true; [ Category("Data"), DefaultValue(true), MergableProperty(false) ] public bool IsKeyEnter { get { return mb_IsKeyEnter; } set { mb_IsKeyEnter=value; } } protected override void OnKeyPress(KeyPressEventArgs e) { base.OnKeyPress (e); if(mb_IsKeyEnter) { if (e.KeyChar == (char)Keys.Enter) { SendKeys.Send("{Tab}"); } } } }

 

你可能感兴趣的:(timer,String,C#,null,Class,textbox)