我正在玩代理,它工作得很好,一切都按照计划完美运行,除了我的应用程序似乎没有对文本框做出反应的小问题。
正如您在下面的代码中看到的那样,即时更改注册表中的代理设置,当我这样做时它就可以正常工作。
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);
}
}
}
答案 0 :(得分:1)
您正在Form_Load()
上进行工作,这意味着它只会在加载表单时运行代码。加载表单后所做的任何更改都不会更改该值。
您需要针对其他事件开展工作,例如点击按钮(例如添加保存按钮)或Form_Close