高分赏格求大神们帮忙
高分悬赏求大神们帮忙
求大神帮忙。要解决的问题如下:
有两个窗体,主窗体Form1,子窗体Form2。Form1中有个TextBox1,Button1,子窗体Form2中有Button2,
假如我点击Button1,弹出Form2,然后我点击Button2后,程序会读取Bin里面的一个log.text文件内容,我想然后将读取的内容显示在Form1中的TextBox1中。也就是跨窗体显示。现在假如读取内容在Form2中显示,我可以做到,但怎么在Form1上显示呢?这个是截图就是这样的效果
------解决方案--------------------
参考这个http://blog.****.net/bdstjk/article/details/7005798
------解决方案--------------------
------解决方案--------------------
方法很多啊,可以在Form2中以各种方式找到Form1窗体的TextBox1控件后赋Text值。
这里说一下 委托。
在Form2中定义
其中ParentShowText是委托名,后面是参数,委托名可以随便起,参数可以随便定,调用的时候对应起来就可以了。
在Form1中打开Form2时
Form1不一定是Form2的主窗体
然后在Form1中写一个实现的公共的事件
在Form2中的Button的点击事件
好了,大功告成!
求大神帮忙。要解决的问题如下:
有两个窗体,主窗体Form1,子窗体Form2。Form1中有个TextBox1,Button1,子窗体Form2中有Button2,
假如我点击Button1,弹出Form2,然后我点击Button2后,程序会读取Bin里面的一个log.text文件内容,我想然后将读取的内容显示在Form1中的TextBox1中。也就是跨窗体显示。现在假如读取内容在Form2中显示,我可以做到,但怎么在Form1上显示呢?这个是截图就是这样的效果
textbox
------解决方案--------------------
参考这个http://blog.****.net/bdstjk/article/details/7005798
------解决方案--------------------
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowLog += new EventHandler<LogEventArgs>(f2_ShowLog);
f2.Show();
}
void f2_ShowLog(object sender, LogEventArgs e)
{
textBox1.Text = e.Text;
}
}
}
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OnShowLog(new LogEventArgs("log log log log log"));
}
private void OnShowLog(LogEventArgs e)
{
if (ShowLog != null) ShowLog(this, e);
}
public event EventHandler<LogEventArgs> ShowLog;
}
public class LogEventArgs : EventArgs
{
public string Text { get; private set; }
public LogEventArgs(string log)
{
Text = log;
}
}
}
------解决方案--------------------
方法很多啊,可以在Form2中以各种方式找到Form1窗体的TextBox1控件后赋Text值。
这里说一下 委托。
在Form2中定义
public delegate void ParentShowText(string txtText);//声明一个委托
public ParentShowText ShowText;//声明事件
其中ParentShowText是委托名,后面是参数,委托名可以随便起,参数可以随便定,调用的时候对应起来就可以了。
在Form1中打开Form2时
private void Button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowText += new Form2.ParentShowText(ShowText_Method);
f2.Show();
}
Form1不一定是Form2的主窗体
然后在Form1中写一个实现的公共的事件
public void ShowText_Method(string txtText)//参数与Form2中的委托对应起来
{
//根据Form2中的传参,实际是在Form1中操纵细节
TextBox1.Text = txtText;
}
在Form2中的Button的点击事件
private void Button2_Click(object sender, EventArgs e)
{
string logs = "";//从txt文件中读取
ShowText(logs);
}
好了,大功告成!