news 2026/7/15 21:05:54

【派大星学C#】测绘程序设计大赛入门教程-1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【派大星学C#】测绘程序设计大赛入门教程-1

1. 引言

测绘程序设计比赛属于测绘技能赛项之一,曾经属于B类赛事,但近年上升到A类赛事,在大学生考研、保研、奖学金评选、甚至是简历上都有着帮助。派大星本身对编程也有点兴趣,近期参加了该比赛,便在B站,CSDN上找了许多资料,但很多博主的讲解并不是非常深入,没有系统性的介绍说明。为了让更多人对测绘程序设计比赛有一个比较清晰的了解,派大星花费了一些时间整合了相应资料,希望能够对大家有所帮助。(推荐使用C# + WinForms 路线,教程使用该路线)

另:该比赛学习难度大,时间成本高,但慎终如始,则无败事!!!


正式阅览本文前,恳请各位读者先读一读下面这段文字,在此先行致谢

编者本人也是一个小白,刚接触测绘程序设计大赛,如若下述文章中有不足之处,敬请指正。另外在这个AI飞速发展的时代,希望读者们能够善于利用AI解决相应问题,绝大部分都能查到的,既然准备参加测绘程序设计大赛,必然是拥有思考能力的。所以,还请各位读者朋友们能够善用网络及AI助力自己学习。

2. VS2022中C#的环境配置

下载VS2022时勾选C#相关环境,已经装好 VS2022的可在Visual Studio Installer中勾选下载

3.WinForms进行窗口设计

3.1新建解决方案

VS2022 解决方案包含多个项目,每个项目对应一个独立类,每个类实现相应功能。

文件——新建——项目——搜索固定控制台应用(.NET Framework)——下一步

【注】控制台应用(.NET Framework):仅 Windows 专属老式框架

控制台应用(无后缀):Windows/macOS/Linux 全平台

视图中调出解决方案资源管理器,显示如下文件及创建成功

3.2 新建窗口类(注意不是窗口项目)

右击CSDN_C#——添加——新建项——窗体(Windows窗体)——添加

右击Form1空白处——属性——查看代码

通过表头更换项目中的各个类(.cs文件)

3.3 添加相应控件

1.控件在视图工具箱

2.创建菜单栏

在工具箱中找到MenuStrip控件,拖动到Form1左上角,在属性中更改Text(所有控件都可通过更改Text来更改Form1中显示内容

3.创建显示页面

在工具箱中找到TabControl控件,拖动到Form1中,在属性中选中TabPages点击右侧三点弹出集合编辑器,更改编辑器中的Text后,在属性中找到Alignment控制相应标签位置(Bottom)。

4.创建工具栏及状态栏

选择Form1中TabControl,属性中选中Dock,更改为fill,在工具箱中找到ToolStrip控件,拖动到Form1绿框中,右击选择DispiayStyle,点击ImageAndText,之后在工具箱中找到StatusStrip控件,拖动到Form1蓝框中,在属性中选中Spring,更改为True。(如果出现控件层级与 Dock 填充遮挡问题,即不是下述图片中的效果,可先实现绿框,删除红框中TabControl,重复第3步)

5.绘制图标及插入图表

右击CSDN_C#——添加——新建文件夹——右击文件夹——添加——新建项——位图文件(即绘制图标)

创建位图文件后就弹窗绘制图标(林黛玉绘画技术一般,请见谅),绘制完成后保存,创建新的位图文件绘制新的图标。

图标全部绘制完成后右击选中,导入绘制的文件,并在更改图标大小,见下图红框。

因测绘数据大多数都要通过表格展示(IDE绘图后期在讲述),在工具箱搜索栏中搜索DataGridView控件,拖动到Form1中,右击选择编辑行或列,在属性中选中Dock,更改为fill,后期导入文件便可在“显示数据”标签中展示。

切换到“查看报告”标签,在工具箱中找到RichTextBox控件,拖动到Form1中,选择Form1中RichTextBox,属性中选中Dock,更改为fill,便于后期导出报告

4. 设计运行及结果

在Program.cs中输入下述红色代码,并在Form.cs中输入下述蓝色代码,同时按下Ctrl和F5运行,等到相应界面即成功

static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

public partial class Form1 : Form
{
public Form1()
{

InitializeComponent();
}

}

该界面满足大多数要求,读者也可以根据自身需求更改,需要注意这只是个显示界面,并未通过代码实现相应功能,下期将通过添加代码实现相应功能。

5. 资源推荐

  • 平台:https://github.com/ybli/bookcode/tree/master(武汉大学李英冰老师开源项目)
  • 书籍:《测绘程序设计(下册)》李英冰 武汉大学出版社
  • B站:武汉大学 李英冰老师 《测绘程序设计》学习配套视频_哔哩哔哩_bilibili
    (视频顺序有点问题,但讲的很好)

6. 结语

测绘程序设计大赛入门的关键在于“动手”和“坚持”,祝你备赛顺利,在竞赛中取得佳绩!

命运反复考验只为看到一颗坚定的心!!!


目录

1. 引言

2. VS2022中C#的环境配置

3. WinForms进行窗口设计

3.1新建解决方案

3.2 新建窗口类(注意不是窗口项目)

3.3 添加相应控件

4. 设计运行及结果


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 21:05:37

Java多线程环境下外卖CPS订单状态机线程安全设计与锁粒度控制

Java多线程环境下外卖CPS订单状态机线程安全设计与锁粒度控制 在外卖CPS(Cost Per Sale)返利系统中,订单状态的流转是核心业务逻辑。从“已下单”到“已支付”,再到“已结算”、“已返利”,每一个状态的变更都直接关联…

作者头像 李华
网站建设 2026/7/15 21:05:33

企业防泄密软件推荐榜:这6款产品各具特点

在数字化转型浪潮中,数据已成为企业最核心的资产——研发代码、设计图纸、客户信息、财务数据,每一项都承载着企业的核心竞争力。然而,数据泄露风险无处不在:员工离职前批量拷贝核心文件、通过微信/邮件随手外发敏感资料、设备丢失…

作者头像 李华
网站建设 2026/7/15 21:03:51

网络路由配置实战:从静态路由到RIP动态路由的演进与对比

1. 网络路由基础与实验环境搭建第一次接触网络路由配置时,我对着闪烁的路由器指示灯手足无措。路由就像城市交通的导航系统,决定着数据包从出发地到目的地的路径选择。我们先从最基础的静态路由开始,逐步过渡到动态路由协议RIP,这…

作者头像 李华
网站建设 2026/7/15 21:01:08

SAP UI5 里的请求拦截机制,与 Angular interceptor 的能力映射和工程边界

把 Chrome DevTools 的 Network 面板打开,在一个典型的 SAP Fiori 页面里点击查询、保存或者执行操作,往往会看到 $metadata、普通 GET、PATCH、POST、$batch 等请求连续出现。此时很自然会想到 Angular 的 HttpInterceptor,能不能在 SAP UI5 里放置一个统一入口,在所有请求…

作者头像 李华
网站建设 2026/7/15 20:55:37

halcon表达题

1、测量工具有哪些距离、角度2、halcon的3D算子用过么?没用过但是我了解过一些3D算子,比如说read_shape_model_3d,在使用2D模型时见过这个算子的用法。3、ROI的形状又哪些圆、椭圆、矩形、仿射矩形、多边形、点、线4、创建ROIdraw、gen、redu…

作者头像 李华
网站建设 2026/7/15 20:53:34

PROSPECT-D模型演进与多光谱植被参数反演实践

1. PROSPECT模型的前世今生:从平板模型到叶片光学革命我第一次接触PROSPECT模型是在2013年的一个农业遥感项目,当时为了反演水稻叶片的叶绿素含量,团队尝试了各种方法都不理想,直到有位法国同行推荐了这个神奇的辐射传输模型。记得…

作者头像 李华