C#Gis插件应用程序
我是地理信息系统的初学者,我必须用两个按钮制作一个简单的应用程序,一个folderbrowser和一个listbox 但是在arcmap插件中,我需要处理多个文件,如button.cs等,但我不知道如何使这些文件相互交互。 我一直在浏览许多论坛和arcgis资源中心。 但我似乎什么也找不到 所以我想做的是能够将事件/变量传递给其他文件。 请在你感到要否决投票或诸如此类的冲动之前,试着让我弄清楚我做错了什么(如果我不知道问题出在哪里,我就不会提出更好的问题),谢谢你的帮助 这里有一些代码C#Gis插件应用程序,c#,arcgis,esri,C#,Arcgis,Esri,我是地理信息系统的初学者,我必须用两个按钮制作一个简单的应用程序,一个folderbrowser和一个listbox 但是在arcmap插件中,我需要处理多个文件,如button.cs等,但我不知道如何使这些文件相互交互。 我一直在浏览许多论坛和arcgis资源中心。 但我似乎什么也找不到 所以我想做的是能够将事件/变量传递给其他文件。 请在你感到要否决投票或诸如此类的冲动之前,试着让我弄清楚我做错了什么(如果我不知道问题出在哪里,我就不会提出更好的问题),谢谢你的帮助 这里有一些代码 usin
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Framework;
using ESRI.ArcGIS.ArcMapUI;
namespace ArcMapAddin16
{
public class Button1 : ESRI.ArcGIS.Desktop.AddIns.Button
{
public Button1()
{
}
protected override void OnClick()
{
UID dockWinID = new UIDClass();
dockWinID.Value = ThisAddIn.IDs.DockableWindow1;
IDockableWindow dockWindow = ArcMap.DockableWindowManager.GetDockableWindow(dockWinID);
dockWindow.Show(true);
listBox1.Items.Add("Sally");
listBox1.Items.Add("Craig");
ArcMap.Application.CurrentTool = null;
}
protected override void OnUpdate()
{
Enabled = ArcMap.Application != null;
}
}
}
据我所知,您想用一些信息实例化一个按钮对象(类),对吗 有两种选择。第一个是定义一个构造函数,允许您注入参数,第二个是创建对象,然后使用所需的信息设置属性 这就是代码中的外观
public class Person
{
// default constructor
public Person()
{
}
public Person(string name, int age)
{
Name = name;
Age = age;
}
public string Name {get;set;}
public int Age {get;set;}
}
public class Employee
{
private Person _person;
// default constructor
// Option 1;
public Employee()
{
// create instance of person injecting name and age on instantiation
Person = new Person("John Doe", "42");
}
// Option 2
public Employee(string name, int age)
{
// create instance with default constructor
Person = new Person();
// set properties once object is created.
Person.Name = name;
Person.Age = age;
}
}
我不知道你的编程技巧,但如果你是C#新手,那就去看看吧
我希望这会有所帮助。您需要实现一个扩展,然后可以从插件的其他组件访问该扩展。该示例显示了如何在组件之间实现这种通信