窗体1的textbox1的值显示在窗体2的textbox1上面和窗体3上面并且做适当的处理
分析:sendmesssage 这个按钮他的作用范围只有在类form1里面,超越这个类这个按钮就没办法工作,,又因为需要对childform1 和childform2进行处理,因此需要将child1和child2想办法传入到form1里面 这样这个两个窗体的空间也都传入到了form1里面就可以进行编辑
1 总之一句话 想办法将二者传入到form1里面。
child1和child2对窗体1的值处理的方式不一样,一个是将form1的值传到到childform。textbox里面 , 另一个是将form1的值传递到childform2.textbox里面并且加上“—YOU”字符。
引入一个接口,里面有个方法,然后将childform1和childform2都继承这个接口,然后重写这个方法 就可以解决
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp6
{
public partial class ChildForm1 : Form,ICareMess
{
public Form1 form1;
public ChildForm1()
{
InitializeComponent();
}
public void Get(string ss)
{
this.textBox1.Text = ss;
}
private void ChildForm_Load(object sender, EventArgs e)
{
}
}
}
踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
List<ICareMess> list1 = new List<ICareMess>();
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
ChildForm1 childForm1 = new ChildForm1();
list1.Add(childForm1);//在这里肯定会纠结为何添加一个窗体不报错呢,
//这是因为ChildForm1 ChildForm2继承了ICareMess接口,将接口想象程一个类
//this.ChildForm1 = childForm;
ChildForm2 childForm2 = new ChildForm2();
list1.Add(childForm2);
childForm1.Show();
childForm2.Show();
}
private void button1_Click(object sender, EventArgs e)
{
foreach (var item in list1)
{
item.Get(this.textBox1.Text);
}
}
}
}
踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp6
{
public partial class ChildForm2 : Form,ICareMess
{
public ChildForm2()
{
InitializeComponent();
}
public void Get(string ss)
{
this.textBox1.Text = ss+"---You";
}
private void ChildForm2_Load(object sender, EventArgs e)
{
}
}
}
踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApp6
{
interface ICareMess
{
void Get(string ss);
}
}