怎么在 tabpages 控件 按页内控件 刷新数据
如何在 tabpages 控件 按页内控件 刷新数据?
界面放一个 tabpages控件
运行后,根据客户端IP,动态增加页,且每个页上放一个TextBox控件,用于显示,且只显示该IP客户端送来的数据。
在界面加了个文本框,用于模拟,不同IP客户端。
现在情况
1 当一个客户端时,即同一个IP送来的数据,在TAB控件上,增加了一个页(以IP地址命名的),且该页TEXTBOX也能显示该IP送来的数据。
2 当,模拟第二个客户端(IP2),在TAB控件上,也增加了,以IP地址命名的新页,且可以显示IP2过来的数据。
3 当,再用第一个IP,模拟送数据时,本该显示在名字为IP1的页中,却显示在名称为IP2的页上了,这个咋解决?
声明
按钮
------解决方案--------------------
确认你的查找条件吧,肯定是没匹配对,你的textbox1和tb2都是按名称写死的,如果page页多了,你怎么办
------解决方案--------------------
你这个问题,跟Listbox那个,有任何区别么?
数据来了,先放数组里,不要直接给控件
然后你要判断当前选择的是哪个页面,将对应的数据显示出来.
------解决方案--------------------
if (ipNames == tabNames.Find(s => s == ipNames)
不需要再额外搞个tabNames去纪录
界面放一个 tabpages控件
运行后,根据客户端IP,动态增加页,且每个页上放一个TextBox控件,用于显示,且只显示该IP客户端送来的数据。
在界面加了个文本框,用于模拟,不同IP客户端。
现在情况
1 当一个客户端时,即同一个IP送来的数据,在TAB控件上,增加了一个页(以IP地址命名的),且该页TEXTBOX也能显示该IP送来的数据。
2 当,模拟第二个客户端(IP2),在TAB控件上,也增加了,以IP地址命名的新页,且可以显示IP2过来的数据。
3 当,再用第一个IP,模拟送数据时,本该显示在名字为IP1的页中,却显示在名称为IP2的页上了,这个咋解决?
声明
List<string> tabNames = new List<string>();
System.Windows.Forms.TextBox tb2 = new TextBox();
按钮
private void button2_Click(object sender, EventArgs e)
{
string ipNames = textBox1.Text;
if (ipNames == tabNames.Find(s => s == ipNames))
{
tb2.Text = tb2.Text + ": " + tabIndex.ToString();
}
// 问题就出在这里,该如何处理?
else
{
tb2 = new TextBox();
tb2.Multiline = true;
tb2.Dock = DockStyle.Fill;
TabPage tpage = new TabPage();
tpage.Text = textBox1.Text;
tpage.Name = textBox1.Text;
tpage.Controls.Add(tb2);
tabControl1.TabPages.Add(tpage);
tabNames.Add(textBox1.Text);
tb2.Text = "test";
tb2.Name = textBox1.Text;
}
}
------解决方案--------------------
确认你的查找条件吧,肯定是没匹配对,你的textbox1和tb2都是按名称写死的,如果page页多了,你怎么办
------解决方案--------------------
你这个问题,跟Listbox那个,有任何区别么?
数据来了,先放数组里,不要直接给控件
然后你要判断当前选择的是哪个页面,将对应的数据显示出来.
------解决方案--------------------
if (ipNames == tabNames.Find(s => s == ipNames)
不需要再额外搞个tabNames去纪录
private void button2_Click(object sender, EventArgs e)
{
string ipNames = textBox1.Text;
var tPage = tabControl1.TabPages[ipNames];
if(tPage == null)
{
TabPage tpage = new TabPage();
tpage.Text = textBox1.Text;
tpage.Name = textBox1.Text;
tb2 = new TextBox();
tb2.Multiline = true;
tb2.Dock = DockStyle.Fill;
tpage.Controls.Add(tb2);