如果你想在Windows Forms中实现URL Encoding,HttpUtility类有一个shared (static)方法实现对字符串的URL 编码。下面就是一个例子:【注意要引用System.Web】Imports System Imports System.Windows.Forms Imports System.Drawing Imports System.WebPublic Class Form1 Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() '该调用是 Windows 窗体设计器所必需的。 InitializeComponent() '在 InitializeComponent() 调用之后添加任何初始化 End Sub '窗体重写 dispose 以清理组件列表。 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub 'Windows 窗体设计器所必需的 Private components As System.ComponentModel.IContainer '注意: 以下过程是 Windows 窗体设计器所必需的 '可以使用 Windows 窗体设计器修改此过程。 '不要使用代码编辑器修改它。 Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents TextBox2 As System.Windows.Forms.TextBox Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents TextBox3 As System.Windows.Forms.TextBox <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.TextBox1 = New System.Windows.Forms.TextBox Me.Button1 = New System.Windows.Forms.Button Me.TextBox2 = New System.Windows.Forms.TextBox Me.Label1 = New System.Windows.Forms.Label Me.Button2 = New System.Windows.Forms.Button Me.TextBox3 = New System.Windows.Forms.TextBox Me.SuspendLayout() ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(72, 16) Me.TextBox1.Size = New System.Drawing.Size(320, 21) Me.TextBox1.Text = "http://xml.sz.luohuedu.net/?ID=Url Encoding 测试" ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(112, 112) Me.Button1.Size = New System.Drawing.Size(96, 23) Me.Button1.Text = " URL Encoding" ' 'TextBox2 ' Me.TextBox2.Location = New System.Drawing.Point(72, 48) Me.TextBox2.Size = New System.Drawing.Size(320, 21) ' 'Label1 ' Me.Label1.Location = New System.Drawing.Point(0, 24) Me.Label1.Size = New System.Drawing.Size(64, 16) Me.Label1.Text = "输入URL:" ' 'Button2 ' Me.Button2.Location = New System.Drawing.Point(240, 112) Me.Button2.Size = New System.Drawing.Size(88, 23) Me.Button2.Text = "URL Decoding" ' 'TextBox3 ' Me.TextBox3.Location = New System.Drawing.Point(72, 80) Me.TextBox3.Size = New System.Drawing.Size(320, 21) ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(416, 149) Me.Controls.Add(Me.TextBox3) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.TextBox2) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TextBox1) Me.Text = "URL Encoding/Decoding 测试" Me.ResumeLayout(False) End Sub #End RegionPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox2.Text = HttpUtility.UrlEncode(TextBox1.Text) End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox3.Text = HttpUtility.UrlDecode(TextBox2.Text) End Sub End Class
我要的是類似于 System.Web.HttpServerUtility.UrlEncode 的功能,將漢字可以進行URL編碼,但是在WinForm中是不可用System.Web.HttpServerUtility類的
Imports System.Windows.Forms
Imports System.Drawing
Imports System.WebPublic Class Form1
Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub '窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub 'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer '注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.TextBox2 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.Button2 = New System.Windows.Forms.Button
Me.TextBox3 = New System.Windows.Forms.TextBox
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(72, 16)
Me.TextBox1.Size = New System.Drawing.Size(320, 21)
Me.TextBox1.Text = "http://xml.sz.luohuedu.net/?ID=Url Encoding 测试"
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(112, 112)
Me.Button1.Size = New System.Drawing.Size(96, 23)
Me.Button1.Text = " URL Encoding"
'
'TextBox2
'
Me.TextBox2.Location = New System.Drawing.Point(72, 48)
Me.TextBox2.Size = New System.Drawing.Size(320, 21) '
'Label1
'
Me.Label1.Location = New System.Drawing.Point(0, 24)
Me.Label1.Size = New System.Drawing.Size(64, 16)
Me.Label1.Text = "输入URL:"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(240, 112)
Me.Button2.Size = New System.Drawing.Size(88, 23)
Me.Button2.Text = "URL Decoding"
'
'TextBox3
'
Me.TextBox3.Location = New System.Drawing.Point(72, 80)
Me.TextBox3.Size = New System.Drawing.Size(320, 21)
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(416, 149)
Me.Controls.Add(Me.TextBox3)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox2)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.TextBox1)
Me.Text = "URL Encoding/Decoding 测试"
Me.ResumeLayout(False) End Sub
#End RegionPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text = HttpUtility.UrlEncode(TextBox1.Text)
End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
TextBox3.Text = HttpUtility.UrlDecode(TextBox2.Text)
End Sub
End Class
System.Web.HttpUtility 根本就不能在WinForm程序中用呀,
在WinForm中只能用System.Web.UI.Design
要源代码的话发邮件。做法:
1,新建立工程,C#,Windows应用程序
2,在工程的引用里添加引用,选.NET,找System.Web.dll
3,窗体代码如下:using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Web;namespace WindowsApplication1
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Button button2;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent(); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(72, 40);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(528, 21);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "我是中文";
//
// button1
//
this.button1.Location = new System.Drawing.Point(168, 168);
this.button1.Name = "button1";
this.button1.TabIndex = 1;
this.button1.Text = "Url编码";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(72, 72);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(528, 21);
this.textBox2.TabIndex = 2;
this.textBox2.Text = "";
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(72, 112);
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(528, 21);
this.textBox3.TabIndex = 3;
this.textBox3.Text = "";
//
// button2
//
this.button2.Location = new System.Drawing.Point(392, 168);
this.button2.Name = "button2";
this.button2.TabIndex = 4;
this.button2.Text = "Url解码";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(672, 273);
this.Controls.Add(this.button2);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); }
#endregion /// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
} private void button1_Click(object sender, System.EventArgs e)
{
textBox2.Text = System.Web.HttpUtility.UrlEncode(textBox1.Text); } private void button2_Click(object sender, System.EventArgs e)
{
textBox3.Text = System.Web.HttpUtility.UrlDecode(textBox2.Text); }
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Web;namespace WindowsApplication1
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Button button2;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(72, 40);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(528, 21);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "我是中文";
//
// button1
//
this.button1.Location = new System.Drawing.Point(168, 168);
this.button1.Name = "button1";
this.button1.TabIndex = 1;
this.button1.Text = "Url编码";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(72, 72);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(528, 21);
this.textBox2.TabIndex = 2;
this.textBox2.Text = "";
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(72, 112);
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(528, 21);
this.textBox3.TabIndex = 3;
this.textBox3.Text = "";
//
// button2
//
this.button2.Location = new System.Drawing.Point(392, 168);
this.button2.Name = "button2";
this.button2.TabIndex = 4;
this.button2.Text = "Url解码";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(672, 273);
this.Controls.Add(this.button2);
this.Controls.Add(this.textBox3);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);}
#endregion/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}private void button1_Click(object sender, System.EventArgs e)
{
textBox2.Text = System.Web.HttpUtility.UrlEncode(textBox1.Text);}private void button2_Click(object sender, System.EventArgs e)
{
textBox3.Text = System.Web.HttpUtility.UrlDecode(textBox2.Text);}
}
}
謝謝了,原來少了最關鍵的一步:添加引用
結貼