因公众号更改推送规则,请点“在看”并加“星标”
第一时间获取精彩技术分享
哈喽,你好啊,我是雷工!
昨天练习了登录窗体的设计实现,今天练习上位机项目主窗体的设计实现。
01 主窗体效果展示
02 实现步骤
2.1、添加主窗体
添加窗体,名称:FrmMain.cs
2.2、窗体属性设置
将FrmMain窗体属性FormBorderStyle设置为None,无边框;
将FrmMain窗体属性Size设置为:920,550;
将FrmMain窗体属性BackColor设置为:ActiveCaption;(设置窗体底色)
2.3、添加控件Panel
主窗体的布局通过添加3个Panel控件实现,
添加第一个Panel控件:
设置Panel1控件的属性Size-Height为:66;
设置Panel1控件的属性Dock为:Top;(Dock属性即锚定到固定位置);
设置Panel1控件的属性BackgroundImage,选择设计好的背景图片,设置效果如下:
添加第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控件事件关联:
窗体可移动效果:
03 后记
以上为上位机项目中主窗体的设计思路及实现流程,麻雀虽小五脏俱全,即使再复杂的项目实现思路和流程都大同小异,均可以借鉴。有对C#感兴趣的小伙伴也可以尝试一下。
---
觉得有用点个关注呗~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!