非规则窗体可能会需要加的功能代码:

1:因为没有了最上边的标题栏,所以需要加窗体鼠标拖动功能,在Form里面加如下代码:

#region   移动窗体
// 移动窗体
const int WM_NCLBUTTONDOWN = 0xA1;
const int HT_CAPTION = 0x2;
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); // 窗体上鼠标按下时
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left & this.WindowState == FormWindowState.Normal)
{
// 移动窗体
this.Capture = false;
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, );
}
}
#endregion

一:窗体形状为图片

1:将窗体的TransparencyKey属性设为窗体的背景色

2:将窗体的FormBorderStyle属性设为None

3:设置窗体的背景属性(BackgroundImage)为准备好的图片(图片背景需为透明,所以是png格式)

4:结果:

一种简单的处理掉背景色的方法:(简单图片可用)

在ppt中插入准备好的图片,点删除背景

如和需求有差别 可以点选标记

最后保存为png即可

二:窗体形状为文字

法1:

1:窗体的FormBorderStyle属性设为None

2:加如下代码:

public LoginForm()
{
InitializeComponent();
GraphicsPath path = new GraphicsPath();
//这里绘画图像
string stringText = "C#";
FontFamily family = new FontFamily("隶书");
int fontStyle = (int)FontStyle.Bold;//粗体
int emSize = ;//字体大小
Point origin = new Point(, );//起始位置
StringFormat format = StringFormat.GenericDefault; path.AddString(stringText, family, fontStyle, emSize, origin, format); Region re = new Region(path);
//将窗口设置为图像的形状
this.Region = re;
}

3:字体的颜色 控制form的背景色

4:结果如下

法2:

图片可由Windows画图工具中写字生成 或截图出  背景色

private void Form1_Load(object sender, EventArgs e)
{
bit = new Bitmap("font.bmp");//从指定的图像初始化Bitmap类对象//图片背景色为while
bit.MakeTransparent(Color.White);//使用默认的透明颜色对Bitmap位图透明
}
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawImage((Image)bit, new Point(0, 0));//在指定位置按指定大小绘制图片的指定部分
}

winform建立非矩形窗体的更多相关文章

  1. C# 非模式窗体show()和模式窗体showdialog()的区别(转)

    对话框不是模式就是无模式的.模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载).例如,如果一个对话框,在可以切换到其它窗 体或对话框之前要求先单击“确定”或“取消”,则它就是模 ...

  2. C# 非模式窗体show()和模式窗体showdialog()的区别

    对话框不是模式就是无模式的.模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载).例如,如果一个对话框,在可以切换到其它窗 体或对话框之前要求先单击"确定"或 ...

  3. 如何在MFC中创建非矩形button

    一般情况下,我们创建的按钮都是矩形的,但有时为了满足特殊的需求,我们要在对话框中创建一个非矩形的按钮,比如,圆形,椭圆等. 要实现一个非矩形的按钮,这就涉及到了自绘控件.自绘控件的方法有很多,可以参考 ...

  4. winform退出或关闭窗体时弹窗提示代码:转

    winform退出或关闭窗体时弹窗提示代码,当我们点击窗体的 X 按钮时,会弹出一个对话框,询问我们是直接退出,还是最小化到托盘,还是取消这个行为.或是是否保存当前修改等等.以下以最小化到托盘为例. ...

  5. css3实现非矩形图片效果

    经常在网站上看到有一些非矩形的图片展示.在以前可能我会毫不犹豫的直接放上张处理好的图片.但是这样的话确实有些不太友好.每每需要换图的时候,都要去开图像处理软件也是蛮拼的.自从有了css3的选装,妈妈就 ...

  6. 非主窗体在任务栏显示按钮(简单好用)good

    非主窗体在任务栏显示按钮 type TForm2 = class(TForm) private { Private declarations } public { Public declaration ...

  7. QT窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透

    qt 窗口置顶/真透明/背景模糊/非矩形/跳过任务栏分页器/无边框/无焦点点击/焦点穿透 窗口置顶qt 里是 setWindowFlags(Qt::WindowStaysOnTopHint)kde 里 ...

  8. 浅谈C#中的模式窗体和非模式窗体

    ShowDialog(); // 模式窗体 Show(); // 非模式窗体 区别: 返回值不同,DialogResult/void 模式窗体会使程序中断,直到关闭模式窗口 打开模式窗体后不能切换到应 ...

  9. (二十四)c#Winform自定义控件-单标题窗体

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

随机推荐

  1. 一些iOS心得

    ARC 1,arc是什么? automatic referece counting   mrc mannualiOS5 之后出来的技术// 2,arc的原理是什么?//   在程序编译的时候,系统帮我 ...

  2. CSS动画 防止动画结束后,回归原位

    animation-fill-mode防止动画结束后,回归原位 animation: arrowsfirst 1s; animation-timing-function: linear; animat ...

  3. 收集Github上的iOS控件和开发资料

    文章来源:http://www.mobile-open.com/2015/85017.html 动画 awesome-ios-animation 收集了iOS平台下比较主流炫酷的几款动画框架 RCTR ...

  4. python3 reqeuests给OSC全站用户刷积分

    严格来讲是给在OSC上贡献过内容的OSC用户刷积分. OSC很多操作都需要消耗积分,很多人给OSC贡献了内容, 但是却没有人点赞,所以有些人在OSC混了很多年也没有积分. 本文中使用到的工具有gifc ...

  5. OutputCache 如何使用本地缓存 【转】

    注意!ASP.NET MVC 3 的一个 OutputCache 问题   在用 ASP.NET MVC 3 重写博客园网站首页时,特地留意了一下这个缓存问题,通过这篇博文分享一下. 在 ASP.NE ...

  6. (转)android平台phonegap框架实现原理

    (原文)http://blog.csdn.net/wuruixn/article/details/7405175 android平台phonegap框架实现原理 分类: Android2012-03- ...

  7. RF Analyzer for Android 安卓平台连接HackRF的App

    Over the last week I've been working on a new project, trying to build a spectrum analyzer for Andro ...

  8. OD调试篇8

    那么今天需要破解的呢,是这样一款软件. 程序刚刚进去会发现一个nag弹窗   说没有注册,要花20美金才能注册.只有5天的限制期限可以用了 进去之后 点击help里的关于这款软件   也显示了这是一个 ...

  9. Gym 100851K

    Problem King's Inspection 题目大意 给一张n个点m条边的无向图,问是否存在一条欧拉回路. n<=10^5, 0<=m<=n+20. 解题分析 注意到数据范围 ...

  10. ARM compiler No such file or directory

    /********************************************************************************* * ARM compiler No ...