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

WinForm限制窗體不能移到屏幕外的方法

 更新時間:2015年08月20日 16:07:50   作者:我心依舊  
這篇文章主要介紹了WinForm限制窗體不能移到屏幕外的方法,實例分析了C#中WinForm窗體操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了WinForm限制窗體不能移到屏幕外的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Runtime.InteropServices;
namespace AppForm
{
 /// <summary>
 /// WinForm限制窗體不能移到屏幕外
 /// </summary>
 public class FrmBase : Form
 {
 private Point _mouseDownPos;
 private bool _move;
 protected override void WndProc(ref Message m)
 {
  RECT nativeRect;
  switch (m.Msg)
  {
  case 0x20:
   int lp = m.LParam.ToInt32();
   if ((lp & 0xFFFF) == 2 &&
   ((lp >> 0x10) & 0xFFFF) == 0x201)
   {
   _mouseDownPos = Control.MousePosition;
   _move = true;
   }
   break;
  case 0x231:
   if (_move)
   {
   Rectangle rect = Screen.GetWorkingArea(this);
   nativeRect = new RECT(
    _mouseDownPos.X - Location.X,
    _mouseDownPos.Y - Location.Y,
    rect.Right - (Bounds.Right - _mouseDownPos.X),
    rect.Bottom - (Bounds.Bottom - _mouseDownPos.Y));
   ClipCursor(ref nativeRect);
   }
   break;
  case 0x0232:
   if (_move)
   {
   nativeRect = new RECT(Screen.GetWorkingArea(this));
   ClipCursor(ref nativeRect);
   _move = false;
   }
   break;
  }
  base.WndProc(ref m);
 }
 [DllImport("user32.dll")]
 public static extern bool ClipCursor(ref RECT lpRect);
 [StructLayout(LayoutKind.Sequential)]
 public struct RECT
 {
  public int Left;
  public int Top;
  public int Right;
  public int Bottom;
  public RECT(int left, int top, int right, int bottom)
  {
  Left = left;
  Top = top;
  Right = right;
  Bottom = bottom;
  }
  public RECT(Rectangle rect)
  {
  Left = rect.Left;
  Top = rect.Top;
  Right = rect.Right;
  Bottom = rect.Bottom;
  }
  public Rectangle Rect
  {
  get
  {
   return new Rectangle(
   Left,
   Top,
   Right - Left,
   Bottom - Top);
  }
  }
  public Size Size
  {
  get
  {
   return new Size(Right - Left, Bottom - Top);
  }
  }
  public static RECT FromXYWH(int x, int y, int width, int height)
  {
  return new RECT(x,
    y,
    x + width,
    y + height);
  }
  public static RECT FromRectangle(Rectangle rect)
  {
  return new RECT(rect.Left,
     rect.Top,
     rect.Right,
     rect.Bottom);
  }
 }
 }
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn)

    C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn)

    在我們的圖像類型教程中定義了RGB顏色模型和灰度格式,本文主要介紹了C# RGB圖像和灰度圖像互轉(zhuǎn)的實現(xiàn),文中通過代碼介紹的非常清楚,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • C#下使用XmlDocument操作XML詳解

    C#下使用XmlDocument操作XML詳解

    本文詳細講解了C#使用XmlDocument操作XML的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#實現(xiàn)讀取被進程占用的文件實現(xiàn)方法

    C#實現(xiàn)讀取被進程占用的文件實現(xiàn)方法

    這篇文章主要介紹了C#實現(xiàn)讀取被進程占用的文件實現(xiàn)方法,涉及C#進程操作及文件讀取的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#巧用DateTime預設(shè)可選的日期范圍(如本年度、本季度、本月等)

    C#巧用DateTime預設(shè)可選的日期范圍(如本年度、本季度、本月等)

    這篇文章主要介紹了C#巧用DateTime預設(shè)可選的日期范圍,如本年度、本季度、本月等,感興趣的小伙伴們可以參考一下
    2016-04-04
  • c# 死鎖和活鎖的發(fā)生及避免

    c# 死鎖和活鎖的發(fā)生及避免

    多線程編程時,如果涉及同時讀寫共享數(shù)據(jù),就要格外小心。如果共享數(shù)據(jù)是獨占資源,則要對共享數(shù)據(jù)的讀寫進行排它訪問,最簡單的方式就是加鎖。鎖也不能隨便用,否則可能會造成死鎖和活鎖。本文將通過示例詳細講解死鎖和活鎖是如何發(fā)生的以及如何避免它們。
    2020-11-11
  • C#常用排序方式總結(jié)

    C#常用排序方式總結(jié)

    在最近的項目中經(jīng)常會對C#中的數(shù)據(jù)進行排序,對于基本數(shù)據(jù)類型,其排序方式比較簡單,只需要調(diào)用內(nèi)置算法即可實現(xiàn),但對于自定義數(shù)據(jù)類型以及自定義排序規(guī)則的情況實現(xiàn)起來就比較麻煩,所以在本文章中將詳細介紹一下在中C#中如何對數(shù)據(jù)進行排序,需要的朋友可以參考下
    2024-01-01
  • Unity3D實現(xiàn)描邊框效果

    Unity3D實現(xiàn)描邊框效果

    這篇文章主要為大家詳細介紹了Unity3D實現(xiàn)描邊框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • WPF實現(xiàn)樹形表格控件的示例代碼

    WPF實現(xiàn)樹形表格控件的示例代碼

    這篇文章主要介紹了如何利用WPF框架實現(xiàn)樹形表格控件,該控件不僅能夠有效地展示復雜的層級數(shù)據(jù),還能夠提供豐富的個性化定制選項,感興趣的可以了解下
    2024-04-04
  • C#實現(xiàn)圖片縮略圖功能的示例詳解

    C#實現(xiàn)圖片縮略圖功能的示例詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)圖片縮略圖的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#實現(xiàn)改變DataGrid某一行和單元格顏色的方法

    C#實現(xiàn)改變DataGrid某一行和單元格顏色的方法

    這篇文章主要介紹了C#實現(xiàn)改變DataGrid某一行和單元格顏色的方法,主要涉及DataGrid控件的添加與使用、數(shù)據(jù)源的綁定、單元格與行的獲取等操作。需要的朋友可以參考下
    2014-09-09

最新評論

吴川市| 江北区| 塔城市| 固始县| 利川市| 太康县| 商洛市| 长宁县| 德兴市| 泽库县| 梓潼县| 屏东市| 图们市| 盖州市| 嫩江县| 湘阴县| 股票| 汉川市| 龙陵县| 衢州市| 诸城市| 北海市| 子洲县| 旬阳县| 荔浦县| 莱芜市| 河池市| 永昌县| 思茅市| 钦州市| 鹰潭市| 德惠市| 西安市| 哈巴河县| 济宁市| 德格县| 孟州市| 保靖县| 团风县| 句容市| 聂荣县|