zoukankan      html  css  js  c++  java
  • 关于C# winform 快速制作不规则边框的方法

    今天逛博客园突然发现一个帖子写的   快速建立不规则边框的方式 

    突然发现以前自己用API的方式好傻杀鸡焉用牛刀  下边是从网上不断转载的 

    原帖:

    地址:http://www.cnblogs.com/alexis/archive/2010/08/29/1811826.html

    1.准备一个不规则的位图

    可以使用任意一种你喜欢的作图工具,制作一个有形状的位图,背景使用一种其他的颜色。这个颜色在编程中用得着,所以最好使用一种容易记忆的颜色。如黄色,文件名为bk.bmp

    2.
    创建窗体并设置属性

    1)将 FormBorderStyle 属性设置为 None

    2)将窗体的 BackgroundImage 属性设置为先前创建的位图文件。不必将文件添加到项目系统中,这将在指定该文件作为背景图像时自动完成。

    3)将 TransparencyKey 属性设置为位图文件的背景色,如:蓝色。(此属性告诉应用程序窗体中的哪些部分需要设置为透明。)(注意此处蓝色的选择和之前的黄色的选择不可相同,转载者注)

    这时你就可以按F5测试你的程序,可以看到如图所示的窗体。现在窗体还不能拖动,只能通过结束程序,或者alt+F4关闭。下面我们编写相应的代码来实现标题栏的相应功能。

     

    3.编写相关代码(要实现窗口的关闭,移动等操作)
    1
    )实现窗口关闭

    从工具栏中拖进一个按钮,设置其按钮文字为“×”,设置其大小为合适大小。双击该按钮进入其触发事件函数。写入如下代码: this.Close(); //关闭本窗体

    2)设置窗体的移动操作,我们要用到两个全局的变量

     

     1private Point mouseOffset; //记录鼠标指针的坐标

     2privatebool isMouseDown = false; //记录鼠标按键是否按下

     3privatevoid Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){

     4     int xOffset;

     5     int yOffset;

     6     if (e.Button == MouseButtons.Left){

     7         xOffset = -e.X -SystemInformation.FrameBorderSize.Width;

     8         yOffset = -e.Y -SystemInformation.CaptionHeight -

     9                   SystemInformation.FrameBorderSize.Height;

    10         mouseOffset = new Point(xOffset, yOffset);

    11         isMouseDown = true;

    12     }

    13 }

    14privatevoid Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e){

    15     if (isMouseDown){

    16         Point mousePos =Control.MousePosition;

    17        mousePos.Offset(mouseOffset.X, mouseOffset.Y);

    18         Location = mousePos;

    19     }

    20 }

    21privatevoid Form1_MouseUp(object sender,System.Windows.Forms.MouseEventArgs e){

    22     // 修改鼠标状态isMouseDown的值,确保只有鼠标左键按下并移动时,才移动窗体

    23     if (e.Button == MouseButtons.Left){

    24         isMouseDown = false;

    25     }

    26 }

     

    3)加入相应的其他的控件

    其他的就是看你自己的需要,来添加控件,实现自己想要实现的功能。本例中添加了一文本框,设置其背景为黄色,所以显示时也成了透明的。

    现在,我们就可以生成程序,看一下最后的效果了。

  • 相关阅读:
    HDOJ 1846 Brave Game
    并查集模板
    HDU 2102 A计划
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    POJ 1321 棋盘问题
    CF 999 C.Alphabetic Removals
    CF 999 B. Reversing Encryption
    string的基础用法
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/jilodream/p/4219894.html
Copyright © 2011-2022 走看看