2014-03-28 109 views
1

我已經搜索了答案的問題,但無法完全找到明確的示例。我試圖在C#中顯示一個簡單的文本框。我正在使用C#,ArcMap和ArcObjects。我創建了一個工具欄,裏面有一個按鈕。點擊按鈕後,我只需要一個文本框出現在頁面上。到目前爲止,這是我得到的,但是當我點擊我的按鈕時沒有任何東西產生。感謝您的幫助提前。顯示一個文本框

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.IO; 
using System.Windows.Forms; 

namespace Map 
{ 
    public class ArcGISAddin4 : ESRI.ArcGIS.Desktop.AddIns.Button 
    { 
     public ArcGISAddin4() 
     { 
     } 

     protected override void OnClick() 
     { 
      TextBox dynamicTextBox = new TextBox(); 
      dynamicTextBox.Text = "My First Text Box"; 
      dynamicTextBox.Name = "First Text Box"; 
      dynamicTextBox.Enabled = true; 
     } 

     protected override void OnUpdate() 
     { 
     } 
    } 
} 
+0

你說**只需要一個文本框出現在頁面上**;你參考了哪些**網頁? –

+0

因爲我在ArcMap中,所以我會在頁面中加載一個mxd(地圖文檔)。我需要將文本框顯示在mxd的頂部。 – user1898629

回答

1

您必須將文本框添加到周圍的容器(例如窗體)。否則,程序將不知道它應該顯示在哪裏。

+0

每個說法都沒有自然的「形式」。有一個加載到ArcMap中的mxd(地圖文檔),我需要在地圖文檔上顯示文本框。但我想我應該認爲瘋狂的文件是「形式」。我會試試這個。謝謝你的幫助。 – user1898629

1

您應該將dynamicTextBox添加到特定的容器,如窗體。 如:

TextBox dynamicTextBox = new TextBox(); 
dynamicTextBox.Text = "My First Text Box"; 
dynamicTextBox.Name = "First Text Box"; 
dynamicTextBox.Enabled = true; 
this.Contols.Add(dynamicTextBox);//this is a pseudo code 
+0

'this.Contols.Add(dynamicTextBox);'可能會更好,因爲我懷疑OP是否指向他在變量中的當前對象。 –

+0

@EvanL是我更新 –

+0

感謝您的意見,我會盡力並繼續測試。 – user1898629