Bentley二次开发教程27-交互窗口-界面开发方法

2024-04-25 14:44

本文主要是介绍Bentley二次开发教程27-交互窗口-界面开发方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

界面设计概述

引言

在我们掌握了交互式工具的使用方法后,在使用过程中会发现:虽然工具中拥有多种交互的手段,但仅凭工具中鼠标,特殊按键与信息提示等交互方法,没有办法同时对多个信息进行展示,也不够直观。而界面不仅可以自定义展示内容,同时也可根据用户的行为实现数据交换,因此掌握界面的制作方法便显得十分重要。基于系列直播课程开办的初衷,凭借上手难度低,学习资料丰富的优势,本次与大家分享的是Winform界面创建及常用控件的使用方法。

WinForm概念简述

WinForm是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。WinForm 编程需要创建「Windows窗体应用程序」项目。Windows 窗体应用程序是 C# 语言中的一个重要应用,也是 C# 语言最常见的应用。使用 C# 语言编写的 Windows 应用程序与 Windows 操作系统的界面类似,每个界面都是由窗体构成的,并且能通过鼠标单击、键盘输入等操作完成相应的功能。其具有以下优势:
1.用户体验好,上手简单,界面反应速度快
2.单机版程序,适合数据敏感使用场景
3.开发便利,无需部署云端,.NET 提供了大量 Windows 风格的控件和事件

WinForm和WPF

提到WinForm就无可避免的会提到WPF,二者都是为了创建桌面客户端应用程序的 UI 框架。
WinForm可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。Windows窗体提供了一套丰富的控件,并且开发人员可以定义自己有特色的新的控件。它的设计器是使用Visual Studio自带的控件进行拖拽,设置控件对应的属性,事件。
WPF能做到分离界面设计人员与开发人员的工作,提供多媒体交互用户图形界面。它的设计器是用xaml语言来写的,就像写html一样。
对于二者的区别,主要有以下几点:

  • WinForm是“前后端”不分离的,WPF是前后端分离的。WinForm的设计器和CS文件的编码“耦合度”太高了,不能独立进行设计页面
  • WPF的UI更加华丽,扩展性较高,但前提是需要会写样式,同时内存占用较高
  • WPF 可以实现数据类似vue=>data绑定,WinForm没有这种方式,控件值需要内部赋值才能起到与WPF相同的效果
  • WPF支持控件自适应
  • Winform上手难度低,WPF的制作需要学习xaml语法,布局方面难度较大
    相关资料:
    WinForm官方入门教程
    WPF官方入门教程

标题WinForm界面开发方法

标题创建WinForm应用

首先需要明确的是:WinForm界面开发作为通用的界面设计开发方式,使用范围不仅局限于MicroStation二次开发,还可使用到其他的程序中,因此,若您希望获得更多WinForm的开发技巧,可以在网上获取更多的相关资料。
对于MicroStation二次开发来说,我们首先需要在工程中创建一个新的项目,具体方式右键工程调出菜单,点击添加后直接选择创建WimForm界面或点击新项目调出文件创建菜单。
在这里插入图片描述
若采用第一种方式创建WinForm菜单,需要选择菜单界面中的WindowForm选项,同时可在下方对该文件进行命名,完成后点击添加。
在这里插入图片描述

WinForm界面设计

添加完成之后会生成一个WinForm界面,此时我们可以选择左边的Toolbox,其中提供了很多控件,方便应对不同的交互需求。
在这里插入图片描述
在这里插入图片描述
当我们需要使用控件时,只需要从工具箱中拉取对应的控件到界面中,使用拖拽或者调整控件中属性的方法对控件尺寸进行调整,此时最简单的界面就已经布置完成。这里我们使用Button控件来进行演示,可以看到,从工具箱中拖拽出来后,可以使用鼠标拖拽或属性值修改的方式来实现界面的设计。
在这里插入图片描述
对于WinForm界面的设计来说,控制界面行为的有属性与事件,属性指的是状态,比如说Button中的属性有按钮的名称,大小,位置,颜色等等,而事件有点像参数化工具中的事件,当我们做出指定行为时若注册了事件那么就会触发该事件。属性和行为的修改不仅可以通过界面,也可通过代码来实现。其实界面生成与代码本质上是一致的,只不过在界面上的操作会自动生成对应的属性设置或者注册对应的事件,更加方便与高效。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public Form1()
{InitializeComponent();button1.Text = "确认";button1.AutoSizeChanged += Button1_AutoSizeChanged; 
}private void Button1_AutoSizeChanged(object sender, EventArgs e)
{}

WinForm常用控件及使用方法介绍

正如上文所述,WinForm使用属性与事件实现数据与用户的信息传递。对于MicroStation二次开发而言,界面的控件主要用于用户信息与MicroStation软件中数据的交换。常用的控件有Button,CheckBox,ComboBox,Label,ListBox,Panel,ProgressBar,RadioButton,TextBox,TreeView等,在这里我们对常用控件的使用方法进行简单介绍。
在这里插入图片描述

WinForm界面

对于WinForm界面来说,若需要对界面进行定制,我们便需要修改其属性,较为常用的是修改WinForm标题栏中的文字大小,字体,或者对界面图表进行设置,包括是否启动最大化,最小化按钮等。

修改界面图标

当我们需要修改界面图标时,需要点击Icon,导入指定的后缀为.ico的文件,此时便会替换为指定图标文件。
在这里插入图片描述

锁定/解锁最大/小化按钮

当我们需要锁定或者解锁最大或最小化按钮,此时需要对最大化/最小化窗口进行设置。

修改界面标题文字

当我们需要修改标题的文字时,可以在属性名为Text处进行修改。
在这里插入图片描述

Button控件

Button控件即按钮,一般用于提供给用户进行确认信息无误后执行的操作。

常用事件

常用的事件主要为点击按钮触发事件。双击Click后的空白处或直接双击界面上的该控件后会自动生成代码注册该事件,并跳转到触发该事件后执行的方法,在方法中补充对应的业务函数。
在这里插入图片描述
在这里插入图片描述

CheckBox控件

复选框主要用于选择单个/多个条件时的条件选择。

常用事件

常用的事件主要为在用户点击复选框时选择状态的更改触发事件。双击CheckedChanged后的空白处或直接双击界面上的该控件后会自动生成代码注册该事件,并跳转到触发该事件后执行的方法,在方法中补充对应的业务函数。
在这里插入图片描述
在这里插入图片描述

这篇关于Bentley二次开发教程27-交互窗口-界面开发方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/934978

相关文章

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.