Приложение надстройки C# Gis



Я новичок в ГИС, и мне нужно сделать простое приложение с 2 кнопками folderbrowser и listbox.



Но вот в надстройках arcmap мне нужно работать с несколькими файлами, такими как кнопка.cs и т. д. Но я не знаю, как заставить файлы взаимодействовать друг с другом.
Я просматривал много форумов и arcgis resource center.
Но я, кажется, ничего не нахожу.



Поэтому я хочу иметь возможность передавать события / переменные в другие файлы.
Пожалуйста, прежде чем вы чувствуете желание понизить голос или что-то в этом роде, попробуйте объяснить мне, что я делаю не так (я не научусь размещать лучшие вопросы, если не знаю, что с ними не так), Спасибо за помощь.



Вот некоторый код



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;
}
}

}
487   2  

2 ответов:

Из того, что я могу понять, вы хотите создать экземпляр объекта Button (класса) с некоторой информацией, правильно?

Есть 2 варианта. Первый-определить конструктор, который позволяет вводить параметры, второй-создать объект, а затем задать свойства с необходимой информацией.

Вот как это будет выглядеть в коде;

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#, то проверьте эту ссылку

Я надеюсь, что это помогает.

Вам нужно реализовать расширение, к которому вы можете получить доступ из других компонентов вашего аддина. Примеррасширения пользовательского выбора показывает, как реализовать такую связь между компонентами.

Comments

    Ничего не найдено.