最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WinForm中的幾個(gè)實(shí)用技巧匯總

 更新時(shí)間:2014年08月26日 11:49:00   投稿:shichen2014  
這篇文章主要介紹了WinForm中的幾個(gè)實(shí)用技巧,是進(jìn)行C#程序設(shè)計(jì)中經(jīng)常用到的技巧,需要的朋友可以參考下

本文匯總了幾個(gè)WinForm中常見的實(shí)用技巧,對于C#程序開發(fā)有著很好的參考借鑒價(jià)值。具體分析如下:

一、屏蔽窗體右上角關(guān)閉按鈕

1.重寫OnClosing

protected override void OnClosing(CancelEventArgs e)
{
  if(this.Visible)
  {
    e.Cancel=true;
   //
   // WHATE TODO 
   //
  }
}

2.重寫WndProc

protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
{
// User clicked close button
this.WindowState = FormWindowState.Minimized;
return;
}
base.WndProc(ref m);
}

更多方法可以參考:
http://topic.csdn.net/u/20091220/21/5228d0d6-26aa-48b8-81aa-293f7c7339f8.html?94449
http://topic.csdn.net/u/20090419/18/970d8ad9-ed9a-4bd9-a623-81d23106545b.html

二、屏蔽CTRL-V

在WinForm中的TextBox控件沒有辦法屏蔽CTRL-V的剪貼板粘貼動作,如果需要一個(gè)輸入框,但是不希望用戶粘貼剪貼板的內(nèi)容,可以改用RichTextBox控件,并且在KeyDown中屏蔽掉CTRL-V鍵,例子:

private void richTextBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.Control && e.KeyCode==Keys.V)
e.Handled = true;
}

三、應(yīng)用程序單例運(yùn)行

#region 單實(shí)例運(yùn)行
/// <summary>
/// 單實(shí)例運(yùn)行
/// </summary>
/// <param name="frm">所要運(yùn)行的主窗體</param>
public static void SingleRun(Form frm)
{
  System.Threading.Mutex mutex = new System.Threading.Mutex(false,"SINGLE_INSTANCE_MUTEX");
  if (!mutex.WaitOne(0, false))
  {
 mutex.Close();
 mutex = null;
  }
  if (mutex != null)
  {
 Application.Run(frm);
  }
  else
  {
 MessageBox.Show("應(yīng)用程序已啟動","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
  }
}
#endregion

四、將控件轉(zhuǎn)換成圓形

 #region 將控件轉(zhuǎn)換為圓形
 [System.Runtime.InteropServices.DllImport("gdi32")]
 private static extern IntPtr BeginPath(IntPtr hdc);
 [System.Runtime.InteropServices.DllImport("gdi32")]
 private static extern int SetBkMode(IntPtr hdc,int nBkMode); 
 const int TRANSPARENT=1;
 [System.Runtime.InteropServices.DllImport("gdi32")]   
 private static extern IntPtr EndPath(IntPtr hdc);
 [System.Runtime.InteropServices.DllImport("gdi32")]
 private static extern IntPtr PathToRegion(IntPtr hdc);
 [System.Runtime.InteropServices.DllImport("gdi32")]
 private static extern int Ellipse(IntPtr hdc,int x1,int y1,int x2,int y2);
 [System.Runtime.InteropServices.DllImport("user32")]
 private static extern IntPtr SetWindowRgn(IntPtr hwnd,IntPtr hRgn,bool bRedraw);
 [System.Runtime.InteropServices.DllImport("user32")]
 private static extern IntPtr GetDC(IntPtr hwnd);
 /// <summary>
 /// 將控件轉(zhuǎn)為圓形
 /// </summary>
 /// <param name="control">控件名</param> 
 public static void MakeControlToCircle(Control[] control)
 {
  IntPtr dc;
  IntPtr region;
  for(int i=0;i<control.Length;i++)
  {
  dc=GetDC(control[i].Handle);
  BeginPath(dc);
  SetBkMode(dc,TRANSPARENT);
  Ellipse(dc,0,0,control[i].Width-3,control[i].Height-2);
  EndPath(dc);
  region=PathToRegion(dc);
  SetWindowRgn(control[i].Handle,region,false);
  }  
 }
  #endregion

五、在同一應(yīng)用程序中同一窗體只打開一個(gè)

/// <summary>
/// 在同一應(yīng)用程序中同一窗體只打開一個(gè)
/// </summary>
/// <param name="frmOpen">要打開的窗體實(shí)例</param>
/// <returns></returns>
public static void OpenSeamForm(Form frmOpen)
{
  foreach (Form frm in Application.OpenForms)
  {
 if (frm.Text == frmOpen.Text)
 {
   frm.Visible = true;
   frm.WindowState = FormWindowState.Normal;
   frm.Activate();
   return;
 }
  }
  frmOpen.Show();
}

相信本文所述實(shí)例對大家WinForm程序設(shè)計(jì)可以帶來很大幫助。

相關(guān)文章

  • Unity3D快速入門教程

    Unity3D快速入門教程

    本文講述了Unity3D如何快速入門,包含Unity3D游戲引擎介紹,學(xué)習(xí)歷程和Unity3D快速入門的途徑,通過該篇文章的講解,希望能夠讓你更好的去學(xué)習(xí)Unity3D引擎
    2021-06-06
  • C#使用Log4.net記錄日志文件

    C#使用Log4.net記錄日志文件

    這篇文章介紹了C#使用Log4.net記錄日志文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#實(shí)現(xiàn)百度網(wǎng)站收錄和排名查詢功能思路及實(shí)例

    C#實(shí)現(xiàn)百度網(wǎng)站收錄和排名查詢功能思路及實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)百度網(wǎng)站收錄和排名查詢功能思路及實(shí)例,本文思路同樣適用必應(yīng)、搜狗、搜搜、360等搜索引擎,需要的朋友可以參考下
    2015-01-01
  • C#中的Explicit和Implicit詳情

    C#中的Explicit和Implicit詳情

    Implicit提高了代碼的可讀性,但程序員需要自己保證轉(zhuǎn)換不引發(fā)異常且不丟失信息、Explicit可阻止編譯器靜默調(diào)用可能產(chǎn)生意外后果的轉(zhuǎn)換操作。前者更易于使用,后者能向閱讀代碼的每個(gè)人清楚地指示您要轉(zhuǎn)換類型,下面就和小編來一起學(xué)習(xí)吧
    2021-09-09
  • 輕松學(xué)習(xí)C#的正則表達(dá)式

    輕松學(xué)習(xí)C#的正則表達(dá)式

    輕松學(xué)習(xí)C#的正則表達(dá)式,對C#的正則表達(dá)式感興趣的朋友可以參考本篇文章,幫助大家更靈活的運(yùn)用C#的正則表達(dá)式
    2015-11-11
  • 在 C# 中使用 插值字符串

    在 C# 中使用 插值字符串

    這篇文章主要介紹了在 C# 中使用 插值字符串,字符串插值是一種將 表達(dá)式 插入到字符串字面量中的一種技術(shù),又稱為變量替換,變量插值,變量展開 等等,它是一種用相應(yīng)值替換字符串中的一個(gè)或者更多個(gè)占位符的處理過程
    2022-01-01
  • C#調(diào)用CMD命令實(shí)例

    C#調(diào)用CMD命令實(shí)例

    這篇文章主要介紹了C#調(diào)用CMD命令實(shí)例本文只是給出一個(gè)比較簡單的、入門級的例子,更多高級的操作技巧請參閱相關(guān)文章,需要的朋友可以參考下
    2014-08-08
  • C#調(diào)用百度API實(shí)現(xiàn)活體檢測的方法

    C#調(diào)用百度API實(shí)現(xiàn)活體檢測的方法

    這篇文章主要給大家介紹了關(guān)于C#調(diào)用百度API實(shí)現(xiàn)活體檢測的方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • WPF MVVM示例講解

    WPF MVVM示例講解

    WPF技術(shù)的主要特點(diǎn)是數(shù)據(jù)驅(qū)動UI,所以在使用WPF技術(shù)開發(fā)的過程中是以數(shù)據(jù)為核心的,WPF提供了數(shù)據(jù)綁定機(jī)制,當(dāng)數(shù)據(jù)發(fā)生變化時(shí),WPF會自動發(fā)出通知去更新UI,這篇文章通過示例讓大家體驗(yàn)下WPF MVM,有需要的朋友可以參考下
    2015-08-08
  • C#圖像處理之圖像均值方差計(jì)算的方法

    C#圖像處理之圖像均值方差計(jì)算的方法

    這篇文章主要介紹了C#圖像處理之圖像均值方差計(jì)算的方法,涉及C#圖像均值方差的計(jì)算技巧,需要的朋友可以參考下
    2015-04-04

最新評論

绥江县| 巴南区| 什邡市| 错那县| 镇平县| 平昌县| 神池县| 扬中市| 宁陕县| 崇礼县| 禹城市| 宁城县| 清原| 南投市| 丹东市| 汨罗市| 徐州市| 垦利县| 崇礼县| 海盐县| 右玉县| 阜阳市| 玛纳斯县| 台北县| 柳江县| 西昌市| 米泉市| 淅川县| 老河口市| 鄂托克前旗| 呼伦贝尔市| 沁源县| 舒城县| 阿坝县| 五峰| 白山市| 兴安县| 岱山县| 神池县| 湘阴县| 甘南县|