当我在文本框中更改代码时,为什么我的代理不会改变? C#.NET

时间:2016-07-09 04:11:13

标签: c# asp.net .net proxy webbrowser-control

我正在玩代理,它工作得很好,一切都按照计划完美运行,除了我的应用程序似乎没有对文本框做出反应的小问题。

正如您在下面的代码中看到的那样,即时更改注册表中的代理设置,当我这样做时它就可以正常工作。

  

registry.SetValue(“ProxyServer”,201.48.34.200:3128);

但是,如果我将其更改为此,并在文本框本身(proxyIP.Text)中输入相同的IP和端口,它不会更改注册表中的代理。可能导致这种情况的任何想法?我试过调试,但没有显示任何异常。

  

registry.SetValue(“ProxyServer”,proxyIP.Text);

using Microsoft.Win32;
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;
using System.Runtime.InteropServices;

namespace ProxyTesting
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            RegistryKey registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);

            registry.SetValue("ProxyEnable", 1);
            registry.SetValue("ProxyServer", proxyIP.Text);
        }

        private void navigateButton_Click(object sender, EventArgs e)
        {
            this.webBrowser1.Navigate(navBox.Text);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您正在Form_Load()上进行工作,这意味着它只会在加载表单时运行代码。加载表单后所做的任何更改都不会更改该值。

您需要针对其他事件开展工作,例如点击按钮(例如添加保存按钮)或Form_Close