打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
c#开发windows应用程序几个小技巧 - 一不要比高,二不要怕累,要随遇而安 - 博客...

c#开发windows应用程序几个小技巧

From:
http://elevenwolf.cnblogs.com/archive/2004/07/23/26969.html

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}");
                }

            }

        }


    }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#之Winform中防止重复打开同一子窗体
Photoshop之打造照片朦胧美
WinForm连续点击按钮只打开一次窗体
在程序中怎么样判断子窗体是否打开和怎么样关闭子窗体的问题?
winform中防止重复打开多个相同子窗体
最简略的羽化图片效果
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服