VS+ArcEngine+C# 开发问题

本文介绍了在使用ArcGIS控件时遇到的授权问题和窗体dataGridView不显示数据的解决方法。首先,确保在Program.cs中正确绑定产品许可证。其次,若dataGridView为空,检查窗体的Load函数是否被正确调用。加载事件需在Designer.cs文件中手动添加,或通过双击窗体在代码中自动生成。了解这些基础知识对于避免此类问题至关重要。

1. License相关

拖入MapControl或TOCControl等控件后,设计页面上显示如下信息:

This Control requires that the application is initialized with an ArcGIS product license. Achieve this by either adding a LicenseControl or programmatically licensing the application using the ESRI.ArcGIS.RuntimeManager.BindLicense or IAoInitialize.Initialize methods

在这里插入图片描述
此时只需要在Toolbox中找到LicenseControl控件,把它拖进窗口就可以了
在这里插入图片描述
其他相关信息:

(1) 记得先在Program.cs中加入这行:
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

在这里插入图片描述

(2) 在 Engine Developers Guide 中找到如下说法

在这里插入图片描述

2. 某窗体的 dataGridView 不显示数据(全灰色)

研究半天发现并不是 dataGridView 的问题,而是该窗体的 Load 函数根本没有被执行。我的 dataGridView 的数据代码全部在 Load 函数中,Load 不执行则表格永远没有数据,只是一片灰色。
解决:只需在该窗体的 Designer.cs 文件中把 Load 函数加进去即可。

this.Load += new System.EventHandler(this.FeatureFormAttr_Load);
// 把 FeatureFormAttr 换成自己的窗体名称

在这里插入图片描述
⚠ 为什么会出现这种情况:因为我对 VS 窗体不够了解,一切都是跟着老师给的代码走。但现在明白,这个 Load 函数并不应该是自己手动敲上去或者从别的地方复制来的,而应该是在 Design 界面双击窗体,由软件自动生成并跳转到 .cs 文件供人书写的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值