2015-08-15 58 views
2

我有两个形式的程序:无法检索用户的文本框中输入

表1有一个TextBoxButton。 Form2有一个DataGridView

然后,我有与接受字符串作为参数的构造函数的一类:

public SymbolData(string symbol) 
{ /* Do stuff */ } 

DataGridView显示从在SymbolData定义的表中的数据时用户点击按钮。

我的问题是,当我点击按钮,从文本检索到的字符串是一个我在它的Text属性插入不管什么插入TextBox输入代码herewhen程序运行

这里是哪里我创建SymbolData例如:

public Form2() 
    { 
     InitializeComponent(); 
     SymbolData sd = new SymbolData(f1.textButton1.Text); 

     dataGridView1.DataSource = sd.Table; 
    } 

谁能帮我通过从TextBox用户的输入在我SymbolData对象的构造函数,当我打电话了吗?

+0

很高兴看到您的问题解决了。请让我注意到两个关于发布到SO的事情:__不要调用'DataGridView'' GridView'或'DataGrid'!这是错误和混乱的,并且经常会从其他类型的目标(如WPF或ASP)中得到错误的答案...始终用__right__名称来称呼它们!是的,它需要更多__four__字母才能打字,但在这里寻求帮助时__not__时间太懒了! - 另外:我已经从标题中删除了C#,因为它已经在标签中,只有重要的标签应该在标题中重复。 – TaW

回答

1

如果你真的想要实例在Form2SymbolData然后让你的窗口2的构造函数接受一个字符串参数和参数传递给SymbolData构造像下面

public Form2(string form1data) 
{ 
    InitializeComponent(); 
    SymbolData sd = new SymbolData(form1data); 
    dataGridView1.DataSource = sd.Table; 
} 

然后在你的Form1按钮单击事件得到Form2一个实例并传递文本框数据

protected void btn1_Click(object sender, EventArgs e) 
{ 
    Form2 frm2 = new Form2(this.textButton1.Text.Trim()); 
    frm2.Showdialog(); 
} 
+1

不太喜欢这种方法,当然它的作品,但不是很OOP。 您应该考虑一个用于在两个类之间交换数据的单例类 –

1

您可以通过多种方式实现,但大多数方法都需要创建一个事件。您可以在窗体上创建一个按钮,当您双击它时会创建一个单击事件。然后你可以通过这种方式传递你的文本。

private void button1_Click(object sender, EventArgs e) 
    { 
      SymbolData sd = new SymbolData(f1.textButton1.Text); 
    } 

您也可以创建文本框,如按键时,KEYUP,的keydown事件,你可以找到在文本框的属性这些事件,并点击面板顶部的闪电看事件。