2013-10-15 64 views
2

我是gis的初學者,我必須使用2個按鈕做一個簡單的應用程序folderbrowser和一個列表框。C#Gis加載項應用程序

但是,這裏是arcmap加載項中的東西,我需要像button.cs等多個文件一起工作,但我不知道如何讓這些文件互相交互。 我一直在尋找許多論壇和arcgis資源中心。 但我似乎無法找到任何東西。

所以我想要做的就是能夠將事件/變量傳遞給其他文件。 請在你感覺到渴望downvote或類似的東西試圖讓我清楚我做錯了什麼(如果我不知道他們有什麼問題,我不會學習發佈更好的問題),謝謝你的幫助。

下面是一些代碼

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

} 

回答

0

從我能理解,你要實例化一個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#,然後檢查了this link

我希望這有助於。

0

您需要實現一個擴展,然後您可以從插件的其他組件訪問該擴展。示例Custom selection extension顯示如何在組件之間實現此類通信。

相關問題