C# 让用户建立自己的主页并不意味着';我不能正常工作

C# 让用户建立自己的主页并不意味着';我不能正常工作,c#,winforms,httpwebrequest,C#,Winforms,Httpwebrequest,基本上,我有两种形式。主页是在单击主窗体中的菜单项时创建的窗体。菜单项弹出此表单,要求用户将所需的URL作为其主页。还包含“确定”和“取消”按钮。url应该保存在字符串中,这样我可以在按下主页按钮时从Form1访问它。主页按钮应加载保存到richTextBox中的url。调用httpwebrequest.create(字符串URLSavedInHomepage) 主窗体中的一些代码: private void HomePage_Click(object sender, EventArgs e)

基本上,我有两种形式。主页是在单击主窗体中的菜单项时创建的窗体。菜单项弹出此表单,要求用户将所需的URL作为其主页。还包含“确定”和“取消”按钮。url应该保存在字符串中,这样我可以在按下主页按钮时从Form1访问它。主页按钮应加载保存到richTextBox中的url。调用httpwebrequest.create(字符串URLSavedInHomepage)

主窗体中的一些代码:

private void HomePage_Click(object sender, EventArgs e)
    {
        Home home = new Home();
        URLInput.Text = home.getHomepage();
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URLInput.Text);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream());
        richTextBox1.Text = sr.ReadToEnd();

    }
private void ChangeHomeToolStripMenuItem_Click(object sender, EventArgs e)
//this is menu item to call 
    {
        Home h = new Home();
        h.Show();
    }

注意,我不能使用WebBrowser类,因为需求说明我不能使用它,否则我只能使用
.Navigate()

如下更改您的代码(我假设URLInput是主窗体上的控件):


我已经编辑了你的标题。请看“,”其中的共识是“不,他们不应该”。谢谢,@John。这是你收到错误时
URLInput.Text
的值?嘿@Jonesy,是的。当我试图运行代码时,它说“无效URI;URI为空”。对不起,输入错误。我的意思是,
URLInput.Text
的值是多少谢谢你的回答,但是ShowDialog()本身不是一个主窗体吗?当我点击主页按钮时,我真的不需要弹出一个表单。我只需要保存的URL显示在URLInput中,这样我就可以按enter键或单击“GO!”按钮来加载实际页面。问题是,您在两个菜单事件处理程序中创建了主窗体的单独实例。如果将第二个处理程序更改为显示对话框并将结果存储在父窗体的字段中,则可以在第一个处理程序中使用此字段的值。我会调整我的答案。非常感谢,马库斯。现在修好了。得到你的想法,检查它,并添加一些代码来激活主页按钮。可能还会处理文件以提高效率。我想如果我关闭应用程序并再次打开它,它将不会记住homepageUrl值,不是吗?不管怎样,已排序。将url写入文件,以便在再次启动应用程序时加载。非常感谢:)
private void HomePage_Click(object sender, EventArgs e)
    {
        Home home = new Home();
        URLInput.Text = home.getHomepage();
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URLInput.Text);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream());
        richTextBox1.Text = sr.ReadToEnd();

    }
private void ChangeHomeToolStripMenuItem_Click(object sender, EventArgs e)
//this is menu item to call 
    {
        Home h = new Home();
        h.Show();
    }
private void HomePage_Click(object sender, EventArgs e)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URLInput.Text);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader sr = new StreamReader(response.GetResponseStream());
    richTextBox1.Text = sr.ReadToEnd();
}

private void ChangeHomeToolStripMenuItem_Click(object sender, EventArgs e)
//this is menu item to call 
{
    using(Home h = new Home())
    {
        h.ShowDialog();
        var homePageUrl = h.getHomePage();
        if (string.IsNullOrEmpty(homePageUrl))
            return;
        URLInput.Text = homePageUrl;
    }
}