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

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

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

本文實(shí)例講述了WinForm限制窗體不能移到屏幕外的方法。分享給大家供大家參考。具體實(shí)現(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);
  }
 }
 }
}

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

相關(guān)文章

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

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

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

    C#下使用XmlDocument操作XML詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

嵊泗县| 建水县| 安仁县| 尚志市| 平潭县| 霍林郭勒市| 油尖旺区| 余江县| 满城县| 饶河县| 卓尼县| 教育| 肇州县| 司法| 丰台区| 双牌县| 日照市| 太康县| 鹤山市| 淅川县| 新蔡县| 富平县| 云安县| 德州市| 凉城县| 银川市| 兴仁县| 河东区| 大新县| 西峡县| 泸西县| 财经| 韶关市| 宜兴市| 汝州市| 沭阳县| 临沂市| 双牌县| 大邑县| 奉节县| 仪陇县|