前言

我们在做一些功能时,有时候需要在功能子窗体中选择主窗体中打开的文件,这样可以不用再在文件选择器中重新选择文件了。我们今天以矢量转栅格为例记录一下。

正文

首先我们需要在子功能窗体中定义两个变量:

//主窗体,用于获取主窗体的图层
MainForm mainForm;
//矢量图层路径链表
List<string> featurePathList = new List<string>();

然后我们要将主窗体通过子功能窗体的构造函数传到子功能主窗体中,并且将主窗体中的矢量图层添加到子功能窗体的combox中:

public MakeTrainingSetForm_VectorToRaster(MainForm mainForm)
{InitializeComponent();this.mainForm = mainForm;//获取矢量路径链表IList<ILayer> layerList = mainForm.mapControlMain.FocusMap.GetAllLayer();for (int i = 0; i < layerList.Count; i++){//只取矢量图层if (layerList[i].LayerType == LayerType.LayerTypeFeatureLayer){featurePathList.Add(layerList[i].DataSourcePath);//分割路径,只取文件名添加到comboBox_InputFilestring[] filePath = layerList[i].DataSourcePath.Split('');comboBox_InputFile.Properties.Items.Add(filePath[filePath.Length - 1]);}}
}

我们在确定按钮中获取combox选中的图层:

string inputFile = featurePathList[comboBox_InputFile.SelectedIndex];

我们在主窗体中初始化子功能窗体时,用关键词this将主窗体传到子功能窗体中:

MakeTrainingSetForm_VectorToRaster MakeTrainingSetForm_VectorToRaster = new MakeTrainingSetForm_VectorToRaster(this);
MakeTrainingSetForm_VectorToRaster.ShowDialog();

这样一来就达成了我们一开始的目的。

mfc 子窗体 按钮不触发_PIE二次开发在子窗体中选择主窗体中的文件相关推荐

  1. MFC在其他类中访问主窗体的成员

    在其他类中访问主窗体的成员: CPMAgentManageDlg* pF = (CPMAgentManageDlg*)AfxGetApp()->m_pMainWnd; 这样用pF这个指针就可以指 ...

  2. python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...

    2009 doi :10 1 3969/ j 1 issn 1 1007 2 2012 1 2009 1 04 1 013 基于 Python 的 ABAQUS 二次开发及在板料快速 冲压成形模拟中的 ...

  3. NX二次开发 判断外挂是否需要更新,从PTF下载文件(从服务器下载文件)

    NX二次开发 判断外挂是否需要更新,从PTF下载文件(从服务器下载文件) //电信的宽带很快,移动到宽带要加载好几秒#include <stdio.h> #include <stri ...

  4. mfc 子窗体 按钮不触发_VBA与Excel入门——用户窗体1

    Part 1:新建用户窗体 打开VBE后,使用菜单 插入-用户窗体,在工程资源管理器可以看到一个UserForm1的用户窗体 用户窗体有点像一个画板,可以使用提供的工具来设置自己的软件界面 具体实现什 ...

  5. C#中在主窗体中用ShowDialog方法显示子窗体的使用技巧

    显示和关闭子窗体: 方法1:源代码: EatGood.FoodManageUI.MessageForm.ConfirmDelFeelkindOrFeelsForm feelkindform = new ...

  6. c++ 二次开发 良田高拍仪_在网页中调用摄像头实现拍照上传 - 高拍仪二次开发...

    来源于  https://blog.csdn.net/weixin_40659738/article/details/78252562 在网页中调用摄像头实现拍照上传 高拍仪二次开发 在一些公共部门的 ...

  7. UG NX二次开发(C#)-外部模式-导出dwg格式的文件

    前言 UG NX是大型CAD软件,也提供了二维制图功能,当我们想采用外部模式导出标准视图的二维制图时,可以通过UG NX提供的二次开发函数来完成.下面介绍下导出二维制图的二次开发方法. 建立一个新的工 ...

  8. AutoCAD .Net 二次开发 VisualStudio 及 .Net Framework 选择

    进行 AutoCAD.Net 二次开发,官方推荐的 VisualStudio 及 .Net Framework 的版本搭配如下: AutoCAD 2015.AutoCAD 2016 Microsoft ...

  9. mfc 子窗体 按钮不触发_资深程序员用c++开发MFC银行排队叫号系统,小白看了也能学会...

    这个C++ 银行排队叫号系统是看了书后写出来的程序,运用于MFC理念编写,我看的书是谭浩强的<C++面向对象程序设计>相对计科的书少了前六章 直接从对象讲起,这本书也是本班使用人数最多的一 ...

  10. mfc 子窗体 按钮不触发_实战经验:MFC非模态对话框的使用

    问题 在MFC编程中,我们经常会使用到模态对话框,模态对话框的一个典型特征是当对话框弹出后,其父窗口将不接受任何UI响应,直到关闭当前的模态对话框后才能继续.然而,非模态对话框就没有这个限制,今天我们 ...

最新文章

  1. 设置linux初始root密码
  2. js循环动态绑定带参数函数遇到的问题及解决方案[转]
  3. 找出数组中两个只出现一次的数字
  4. 输出EXCEL文件的通用函数
  5. 朋友圈 H5 进化简史
  6. c#中用鼠标点击事件实现抠图
  7. C语言求35 45的最大公约数,C语言怎么求最大公约数和最小公倍数
  8. Codeforces 1029B. Creating the Contest 动态规划O(nlogn)解法 及 单调队列O(n)解法
  9. AE CC2018/64位安装步骤及各种出现问题!!(真的装了好久)
  10. 模型预测控制器(MPC)系列: 3.车辆横向MPC控制中的前馈设计
  11. I2C设备调试及波形分析
  12. iOS定位获取城市名
  13. 车企Tier1的日子不好过
  14. 《私募股权基金投资基础知识》---第五章
  15. VS2017_扩大程序运行内存
  16. 9大值得学习的尖端编程语言
  17. 试题 算法训练 九宫格的奥(解题思路与代码)
  18. c语言开发套路-怎样快速调用别人的一套接口 api模型的抽象
  19. mobl中title颜色的设置
  20. uniApp请确认自定义基座的iOS证书已添加iOS设备的UDID

热门文章

  1. 孙忠的面向对象第二次作业
  2. Mysql事务,并发问题,锁机制
  3. Fragment学习(二): 管理Fragment和Fragment通讯
  4. 细说static关键字及其应用
  5. 老罗将死,或者Android也将就换代,但是互联网的,共享,互助精神将永存
  6. 将十进制IP转换成二进制IP
  7. Java IO流常用操作方法总结
  8. MyBatis的分页插件PageHelper的使用
  9. Ubuntu下多个gcc版本之间的切换
  10. 高通联手商汤科技共推终端人工智能