抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望
因公众号更改推送规则,请点“在看”并加“星标”
第一时间获取精彩技术分享

哈喽,你好啊,我是雷工!
昨天练习了登录窗体的设计实现,今天练习上位机项目主窗体的设计实现。
01  主窗体效果展示
1.png
02  实现步骤
2.1、添加主窗体
添加窗体,名称:FrmMain.cs
2.png
2.2、窗体属性设置
将FrmMain窗体属性FormBorderStyle设置为None,无边框;
将FrmMain窗体属性Size设置为:920,550;
将FrmMain窗体属性BackColor设置为:ActiveCaption;(设置窗体底色)
2.3、添加控件Panel
主窗体的布局通过添加3个Panel控件实现,
添加第一个Panel控件:
3.png
设置Panel1控件的属性Size-Height为:66;
设置Panel1控件的属性Dock为:Top;(Dock属性即锚定到固定位置);
4.png
设置Panel1控件的属性BackgroundImage,选择设计好的背景图片,设置效果如下:
5.png
添加第2个Panel控件:
参考上边步骤设置Panel的相关属性,调整合适的位置及大小尺寸,有UI设计图的可以添加背景图;
2.4、其他控件属性
其他控件属性设置与之前笔记内容类似,不详细赘述,可参考下表设置:
按钮重复的属性设置已经省略
控件名称
设置属性
属性值
备注
Button1
FlatStyle
Flat
设置无边框
Text
添 加 账 号 信 息

TextAlign
MiddleRight
按钮文本的对齐方式
BackColor
DarkSlateGray
设置背景色
Font
White
设置字体文本色
(name)
btnAddMessage

Image
图标
选择备好的图标素材
Button2
Text
账 号 信 息  管 理

(name)
btnMessageManage

Button3
Text
作 者 信 息  管 理

(name)
btnAuthorManage

Button4
Text
修 改 登 录 密 码

(name)
btnChangePwd

Panel3
(name)
panelMain
修改主要区域Panel名
Label
Text
雷工
当前登录人
Image
图标
选择备好的图标素材
AutoSize
False
取消根据字号自动调整
BackColor
Transparent
将文本背景设置为透明
2.5、窗体关闭按钮
窗体关闭按钮的实现和登录窗体的实现步骤一样,
为了美观按钮的背景色也可以设置成透明色,(按钮的边框线颜色不允许设置成透明)。
2.6、设置窗口可移动
设置为无边框时,鼠标无法拖动窗体位置,可以通过代码方式实现。
在登录窗口中是设置的窗体事件,在此处主窗体可以设置关联页眉Panel1的事件,仅点击上端的Panel位置可以拖动窗体。
实现方法如下:
首先在主窗体添加代码:
#region  窗体移动private  Point  mouseOff;//鼠标移动位置变量private  bool  leftFlag;//标签是否为左键private  void  Frm_MouseDown(object  sender,  MouseEventArgs  e){        if  (e.Button  ==  MouseButtons.Left)//判断鼠标左键是否被按下        {                mouseOff  =  new  Point(-e.X,  -e.Y);//得到变量的值                leftFlag  =  true;//标记鼠标左键的状态        }}private  void  Frm_MouseMove(object  sender,  MouseEventArgs  e)//鼠标移动触发MouseMove事件{        if(leftFlag)//判断鼠标左键有没有被按下        {                Point  mouseSet  =  Control.MousePosition;//获取屏幕中鼠标所在的位置                mouseSet.Offset(mouseOff.X,  mouseOff.Y);//设置移动后的位置                Location=mouseSet;        }}private  void  Frm_MouseUp(object  sender,  MouseEventArgs  e)//鼠标左键抬起后触发MouseUp事件{        if(leftFlag)        {                leftFlag  =  false;//释放鼠标后标注为false;        }}#endregion
Panel1控件事件关联:
6.png
窗体可移动效果:
7.gif
03  后记
以上为上位机项目中主窗体的设计思路及实现流程,麻雀虽小五脏俱全,即使再复杂的项目实现思路和流程都大同小异,均可以借鉴。有对C#感兴趣的小伙伴也可以尝试一下。

---

觉得有用点个关注呗~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码