2013-02-22 25 views
0

我试图将父窗体上的页面名称更改为用户在子窗体上的文本框中键入的内容,当单击一个条形菜单按钮时。我有一切工作,我可以在两种形式之间拉取正确的信息,但每次获得当前选定的tabpage时,它总是返回“0”。与TabControls的问题

功能设置上Forum1新标签页的名称(该消息框是从尝试调试)

public void setNewTabName(string TextBoxText) 
    { 
     MessageBox.Show("Called"); 
     MessageBox.Show(TextBoxText); 
     int CurrentSelectedTab = tabControl1.SelectedIndex; 
     MessageBox.Show(CurrentSelectedTab.ToString()); 
     tabControl1.TabPages[CurrentSelectedTab].Text = TextBoxText; 
    } 

功能(窗体2)用于获取文本信息,并将其传递到Form1

private void button1_Click(object sender, EventArgs e) 
    { 
     BT frm1 = new BT(); 
     frm1.setNewTabName(getTextBoxInfo()); 
    } 

    public string getTextBoxInfo() 
    { 
     return textBox1.Text; 
    } 

任何帮助将不胜感激。我想我发布了所有相关的代码,但如果你需要其他东西,我可以发布整个事情。唯一真正被遗漏的是它会在点击按钮时创建一个新的tabpage。

编辑:同样的方法从子GUI中取出时工作正常。

回答

1

我认为问题在于每次单击按钮时都会创建一个新窗体(类BT)。我建议你将窗体创建从按钮点击事件移动到父窗体加载函数。

+0

这似乎没有影响任何东西,虽然我确实将它移动到另一个位置。当使用MessageBox.Show时,我得到的最后一个显示“CurrentSelectedTab”为0,即使当前选择的选项卡不为0。我认为这可能与窗口不活动有关,但没有太多的经验c#知道如何解决它。 – cro91 2013-02-22 23:00:51