2016-07-09 11 views
0

私は現在、プロキシと一緒に遊んでいますが、うまく動作しています。私のアプリケーションがテキストボックスに反応しない小さな問題を除いて、すべてが計画どおりに機能しています。テキストボックスでプロキシを変更すると、プロキシが変更されないのはなぜですか? C#.NET

以下のコードでわかるように、私はレジストリのプロキシ設定を変更しています。このようなときにうまく動作します。

registry.SetValue( "ProxyServer"、201.48.34.200:3128);

しかし、私はテキストボックス自体(proxyIP.Text)に同じIPとポートをこのように変更して、入力した場合には、レジストリ内のプロキシを変更doesntの。これを引き起こしている可能性のあるアイデアは何ですか?私はデバッグを試みましたが、珍しいことは何も表示していません。

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

の作業を行う必要があり

? 'ます。private void Form1_Load(オブジェクト送信者、EventArgsの電子) { 試し{ のRegistryKeyレジストリ= Registry.CurrentUser.OpenSubKey( "ソフトウェア\\のMicrosoft \\ Windowsの\\ CurrentVersionの\\インターネット設定"、真の); registry.SetValue( "ProxyEnable"、1); registry.SetValue( "ProxyServer"、proxyIP.Text); } catch { } } – VargaDev

+0

私はちょうど例外をキャッチする方法を思い出しました。 – VargaDev

+0

それは私に例外を投げなかった、これはそれらのかわいいエラーの1つのようです – VargaDev

答えて

1

はフォームがロードされたとき、それが唯一のコードを実行することを意味しForm_Load()の作業を、行っています。フォームがロードされた後に行われた変更は、値を変更しません。あなたはこのように意味の異なる、ボタンのクリックなどのイベント、(すなわち、保存ボタンを追加します)、またはForm_Close

+0

それをよく説明してくれてありがとう!ほとんどの場合、私の答えは正しいものでなければなりませんが、あなたが意味することとそれがどのように機能するのか理解していますが、偉大な答えに感謝します。 – VargaDev

関連する問題