C# 显示文本框

C# 显示文本框,c#,textbox,arcmap,arcobjects,C#,Textbox,Arcmap,Arcobjects,我已经搜索了这些问题的答案,但没有找到一个明确的例子。我试图用C#显示一个简单的文本框。我正在使用C#、ArcMap和ArcObjects。我创建了一个工具栏,其中有一个按钮。单击按钮后,我只需要在页面上显示一个文本框。到目前为止,这是我得到的,但当我点击我的按钮时,什么都没有产生。提前谢谢你的帮助 using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Wi

我已经搜索了这些问题的答案,但没有找到一个明确的例子。我试图用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()
        {
        }
    }
}

您必须将文本框添加到周围的容器(例如表单)。否则程序将不知道它应该显示在哪里。

您应该将
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

你说只需要在页面上显示一个文本框;您指的是哪一页?因为我在ArcMap中,所以我会将mxd(地图文档)加载到该页。我需要文本框显示在mxd的顶部。
this.Contols.Add(dynamicTextBox)可能会更好,因为我怀疑OP在变量中引用的是其当前对象。感谢您的输入,我将尝试一下并继续测试。我无法输入代码-->this.Controls.Add(dynamicTextBox)。。。我得到一个错误,说“控件”没有定义,也没有扩展方法。。。。。。当然这是准确的,但我没有使用典型的形式。我想你不能通过这种方式在mxd上显示一个文本框。没有自然的“形式”。有一个mxd(地图文档)加载到ArcMap中,我需要在地图文档上显示该文本框。但我想我应该把这个疯狂的文档看作是“表单”。我要试试这个。谢谢你的帮助。