日期:2014-05-18  浏览次数:20799 次

求助关于FORM窗体的问题
我做的一个WINDOWS桌面程序,第1个窗体上有一个文本框和BUTTON按钮,第2个窗体上有1个webBrowser和返回按钮,需要在第1个窗体上的文本框中输入域名,点按钮后显示第2个窗体,并在webBrowser上显示网页内容,再点返回按钮,隐藏第二个窗体;再次输入1个新的域名后要在第2个窗体上显示相应的网页内容,以此反复。我已实现了前半部分功能,就是再次输入1个新的域名后要在第2个窗体上显示相应的网页内容无法实现,只能显示先前的网页内容。这该如何实现?望高手请教,谢谢!
代码如下:
Form1:
public partial class Form1 : Form
  {
  private Form2 frm = new Form2();
  static public string urlName;
  public Form1()
  {
  InitializeComponent();
  }

  private void button1_Click(object sender, EventArgs e)
  {
  urlName = textBox1.Text.Trim().ToString();
  frm.Show();
   
   
  }

Form2:
private void Form2_Load(object sender, EventArgs e)
  {
  Uri siteUri = new Uri("http://" + Form1.urlName);
  webBrowser1.Navigate(siteUri);
  }

  private void button1_Click(object sender, EventArgs e)
  {
  this.Hide();
  }

------解决方案--------------------
因为你的Form2只是隐藏后重新显示,所以无法重新加载网页。
这样试试
Form1: 
public partial class Form1 : Form 

static public string urlName; 
public Form1() 

InitializeComponent(); 


private void button1_Click(object sender, EventArgs e) 


Form2 frm = new Form2(); 
urlName = textBox1.Text.Trim().ToString(); 
frm.Show();


Form2: 
private void Form2_Load(object sender, EventArgs e) 

Uri siteUri = new Uri("http://" + Form1.urlName); 
webBrowser1.Navigate(siteUri); 


private void button1_Click(object sender, EventArgs e) 

this.Close(); 
}

或者可以在Form2中写个公用函数来调用
Form1: 
public partial class Form1 : Form 

private Form2 frm = new Form2(); 
static public string urlName; 
public Form1() 

InitializeComponent(); 


private void button1_Click(object sender, EventArgs e) 

urlName = textBox1.Text.Trim().ToString(); 
frm.showForm2(urlName);
frm.Show();


Form2: 
private void Form2_Load(object sender, EventArgs e) 




private void button1_Click(object sender, EventArgs e) 

this.Hide(); 
}

public void showForm2(string url)
{
Uri siteUri = new Uri("http://" + url); 
webBrowser1.Navigate(siteUri); 
}

没有测,lz可以试试