UserControl 类
提供一个可用来创建其他控件的空控件。
**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)
语法
声明
<ComVisibleAttribute(True)> _
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
Public Class UserControl
Inherits ContainerControl
用法
Dim instance As UserControl
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
public class UserControl : ContainerControl
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
public ref class UserControl : public ContainerControl
/** @attribute ComVisibleAttribute(true) */
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */
public class UserControl extends ContainerControl
ComVisibleAttribute(true)
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)
public class UserControl extends ContainerControl
备注
通过扩展 ContainerControl,UserControl 将继承用户控件中必需的所有标准定位和助记处理代码。
UserControl 为您提供了创建控件的能力,这些控件可以在一个应用程序或组织中的多处使用。您可以包括当验证要求用户输入的常用数据时所需的全部代码;例如电子邮件地址(参阅“示例”部分)、电话号码和邮政编码。用户控件另一个有效的用途是将 ComboBox 或 ListBox 预加载通常会在几乎每个应用程序中使用的静态项;例如国家/地区,城市,州和办公室地点。有关创作自定义控件的更多信息,请参见 使用 .NET Framework 开发自定义 Windows 窗体控件。
提示
您可以考虑创建一个包含几个用户控件类的命名空间并将其编译为一个 DLL。此 DLL 可以在该应用程序或一个组织内的所有应用程序中进行引用和分发。这样,您就可以在多个应用程序中引用该用户控件,从而节约布局和编写用户控件所包含元素的时间。用户控件还使您能够在应用程序内部或在应用程序之间保持一致性;例如,所有地址信息输入块都将具有相同的外观和行为。如果实现了这种一致性,您的应用程序将具有更加精致和专业化的外观。
可在窗体内部、另一个 UserControl 上、网页上 Internet Explorer 的内部或窗体上承载的 WebBrowser 控件内部承载 Windows 窗体 UserControl 派生类。
提示
当在 WebBrowser 控件内部承载 UserControl 时,不能使用 META
标记值 MSThemeCompatible
关闭视觉样式。有关视觉样式的更多信息,请参见 使用视觉样式呈现控件。
注意,对于 Smartphone 应用程序,此控件需要用于 Smartphone 的 Windows Mobile 5.0 版软件。
示例
下面的代码示例创建 UserControl,它可以在多个应用程序中重复使用,以获取用户信息。为了收集用户的信息,此示例在 UserControl 中添加了几个 Label 控件、TextBox 控件和一个 ErrorProvider。此外,用户的电子邮件地址在 TextBox 的 Validating 事件中进行验证,而 ErrorProvider 对象则用于在数据未能通过验证的情况下为用户提供反馈。此代码应编译成在其他程序中引用的 DLL。
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
Imports Microsoft.VisualBasic
Namespace UserControls
Public Class MyCustomerInfoUserControl
Inherits System.Windows.Forms.UserControl
' Create the controls.
Private errorProvider1 As System.Windows.Forms.ErrorProvider
Private textName As System.Windows.Forms.TextBox
Private textAddress As System.Windows.Forms.TextBox
Private textCity As System.Windows.Forms.TextBox
Private textStateProvince As System.Windows.Forms.TextBox
Private textPostal As System.Windows.Forms.TextBox
Private textCountryRegion As System.Windows.Forms.TextBox
Private WithEvents textEmail As System.Windows.Forms.TextBox
Private labelName As System.Windows.Forms.Label
Private labelAddress As System.Windows.Forms.Label
Private labelCityStateProvincePostal As System.Windows.Forms.Label
Private labelCountryRegion As System.Windows.Forms.Label
Private labelEmail As System.Windows.Forms.Label
Private components As System.ComponentModel.IContainer
' Define the constructor.
Public Sub New()
InitializeComponent()
End Sub
' Initialize the control elements.
Public Sub InitializeComponent()
' Initialize the controls.
components = New System.ComponentModel.Container()
errorProvider1 = New System.Windows.Forms.ErrorProvider()
textName = New System.Windows.Forms.TextBox()
textAddress = New System.Windows.Forms.TextBox()
textCity = New System.Windows.Forms.TextBox()
textStateProvince = New System.Windows.Forms.TextBox()
textPostal = New System.Windows.Forms.TextBox()
textCountryRegion = New System.Windows.Forms.TextBox()
textEmail = New System.Windows.Forms.TextBox()
labelName = New System.Windows.Forms.Label()
labelAddress = New System.Windows.Forms.Label()
labelCityStateProvincePostal = New System.Windows.Forms.Label()
labelCountryRegion = New System.Windows.Forms.Label()
labelEmail = New System.Windows.Forms.Label()
' Set the tab order, text alignment, size, and location of the controls.
textName.Location = New System.Drawing.Point(120, 8)
textName.Size = New System.Drawing.Size(232, 20)
textName.TabIndex = 0
textAddress.Location = New System.Drawing.Point(120, 32)
textAddress.Size = New System.Drawing.Size(232, 20)
textAddress.TabIndex = 1
textCity.Location = New System.Drawing.Point(120, 56)
textCity.Size = New System.Drawing.Size(96, 20)
textCity.TabIndex = 2
textStateProvince.Location = New System.Drawing.Point(216, 56)
textStateProvince.Size = New System.Drawing.Size(56, 20)
textStateProvince.TabIndex = 3
textPostal.Location = New System.Drawing.Point(272, 56)
textPostal.Size = New System.Drawing.Size(80, 20)
textPostal.TabIndex = 4
textCountryRegion.Location = New System.Drawing.Point(120, 80)
textCountryRegion.Size = New System.Drawing.Size(232, 20)
textCountryRegion.TabIndex = 5
textEmail.Location = New System.Drawing.Point(120, 104)
textEmail.Size = New System.Drawing.Size(232, 20)
textEmail.TabIndex = 6
labelName.Location = New System.Drawing.Point(8, 8)
labelName.Size = New System.Drawing.Size(112, 23)
labelName.Text = "Name:"
labelName.TextAlign = System.Drawing.ContentAlignment.MiddleRight
labelAddress.Location = New System.Drawing.Point(8, 32)
labelAddress.Size = New System.Drawing.Size(112, 23)
labelAddress.Text = "Address:"
labelAddress.TextAlign = System.Drawing.ContentAlignment.MiddleRight
labelCityStateProvincePostal.Location = New System.Drawing.Point(8, 56)
labelCityStateProvincePostal.Size = New System.Drawing.Size(112, 23)
labelCityStateProvincePostal.Text = "City, St/Prov. Postal:"
labelCityStateProvincePostal.TextAlign = System.Drawing.ContentAlignment.MiddleRight
labelCountryRegion.Location = New System.Drawing.Point(8, 80)
labelCountryRegion.Size = New System.Drawing.Size(112, 23)
labelCountryRegion.Text = "Country/Region:"
labelCountryRegion.TextAlign = System.Drawing.ContentAlignment.MiddleRight
labelEmail.Location = New System.Drawing.Point(8, 104)
labelEmail.Size = New System.Drawing.Size(112, 23)
labelEmail.Text = "email:"
labelEmail.TextAlign = System.Drawing.ContentAlignment.MiddleRight
' Add the controls to the user control.
Controls.AddRange(New System.Windows.Forms.Control() {labelName, _
labelAddress, labelCityStateProvincePostal, labelCountryRegion, _
labelEmail, textName, textAddress, textCity, textStateProvince, _
textPostal, textCountryRegion, textEmail})
' Size the user control.
Size = New System.Drawing.Size(375, 150)
End Sub
Private Sub MyValidatingCode()
' Confirm there is text in the control.
If textEmail.Text.Length = 0 Then
Throw New Exception("Email address is a required field")
Else
' Confirm that there is a "." and an "@" in the e-mail address.
If textEmail.Text.IndexOf(".") = - 1 Or textEmail.Text.IndexOf("@") = - 1 Then
Throw New Exception("Email address must be valid e-mail address format." + _
Microsoft.VisualBasic.ControlChars.Cr + "For example 'someone@example.com'")
End If
End If
End Sub
' Validate the data input by the user into textEmail.
Private Sub textEmail_Validating(sender As Object, _
e As System.ComponentModel.CancelEventArgs) Handles textEmail.Validating
Try
MyValidatingCode()
Catch ex As Exception
' Cancel the event and select the text to be corrected by the user.
e.Cancel = True
textEmail.Select(0, textEmail.Text.Length)
' Set the ErrorProvider error with the text to display.
Me.errorProvider1.SetError(textEmail, ex.Message)
End Try
End Sub
Private Sub textEmail_Validated(sender As Object, _
e As System.EventArgs) Handles textEmail.Validated
' If all conditions have been met, clear the error provider of errors.
errorProvider1.SetError(textEmail, "")
End Sub
End Class
End Namespace
using System;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
namespace UserControls
{
public class MyCustomerInfoUserControl : System.Windows.Forms.UserControl
{
// Create the controls.
private System.Windows.Forms.ErrorProvider errorProvider1;
private System.Windows.Forms.TextBox textName;
private System.Windows.Forms.TextBox textAddress;
private System.Windows.Forms.TextBox textCity;
private System.Windows.Forms.TextBox textStateProvince;
private System.Windows.Forms.TextBox textPostal;
private System.Windows.Forms.TextBox textCountryRegion;
private System.Windows.Forms.TextBox textEmail;
private System.Windows.Forms.Label labelName;
private System.Windows.Forms.Label labelAddress;
private System.Windows.Forms.Label labelCityStateProvincePostal;
private System.Windows.Forms.Label labelCountryRegion;
private System.Windows.Forms.Label labelEmail;
private System.ComponentModel.IContainer components;
// Define the constructor.
public MyCustomerInfoUserControl()
{
InitializeComponent();
}
// Initialize the control elements.
public void InitializeComponent()
{
// Initialize the controls.
components = new System.ComponentModel.Container();
errorProvider1 = new System.Windows.Forms.ErrorProvider();
textName = new System.Windows.Forms.TextBox();
textAddress = new System.Windows.Forms.TextBox();
textCity = new System.Windows.Forms.TextBox();
textStateProvince = new System.Windows.Forms.TextBox();
textPostal = new System.Windows.Forms.TextBox();
textCountryRegion = new System.Windows.Forms.TextBox();
textEmail = new System.Windows.Forms.TextBox();
labelName = new System.Windows.Forms.Label();
labelAddress = new System.Windows.Forms.Label();
labelCityStateProvincePostal = new System.Windows.Forms.Label();
labelCountryRegion = new System.Windows.Forms.Label();
labelEmail = new System.Windows.Forms.Label();
// Set the tab order, text alignment, size, and location of the controls.
textName.Location = new System.Drawing.Point(120, 8);
textName.Size = new System.Drawing.Size(232, 20);
textName.TabIndex = 0;
textAddress.Location = new System.Drawing.Point(120, 32);
textAddress.Size = new System.Drawing.Size(232, 20);
textAddress.TabIndex = 1;
textCity.Location = new System.Drawing.Point(120, 56);
textCity.Size = new System.Drawing.Size(96, 20);
textCity.TabIndex = 2;
textStateProvince.Location = new System.Drawing.Point(216, 56);
textStateProvince.Size = new System.Drawing.Size(56, 20);
textStateProvince.TabIndex = 3;
textPostal.Location = new System.Drawing.Point(272, 56);
textPostal.Size = new System.Drawing.Size(80, 20);
textPostal.TabIndex = 4;
textCountryRegion.Location = new System.Drawing.Point(120, 80);
textCountryRegion.Size = new System.Drawing.Size(232, 20);
textCountryRegion.TabIndex = 5;
textEmail.Location = new System.Drawing.Point(120, 104);
textEmail.Size = new System.Drawing.Size(232, 20);
textEmail.TabIndex = 6;
labelName.Location = new System.Drawing.Point(8, 8);
labelName.Size = new System.Drawing.Size(112, 23);
labelName.Text = "Name:";
labelName.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
labelAddress.Location = new System.Drawing.Point(8, 32);
labelAddress.Size = new System.Drawing.Size(112, 23);
labelAddress.Text = "Address:";
labelAddress.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
labelCityStateProvincePostal.Location = new System.Drawing.Point(8, 56);
labelCityStateProvincePostal.Size = new System.Drawing.Size(112, 23);
labelCityStateProvincePostal.Text = "City, St/Prov. Postal:";
labelCityStateProvincePostal.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
labelCountryRegion.Location = new System.Drawing.Point(8, 80);
labelCountryRegion.Size = new System.Drawing.Size(112, 23);
labelCountryRegion.Text = "Country/Region:";
labelCountryRegion.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
labelEmail.Location = new System.Drawing.Point(8, 104);
labelEmail.Size = new System.Drawing.Size(112, 23);
labelEmail.Text = "email:";
labelEmail.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
// Add the Validating and Validated handlers for textEmail.
textEmail.Validating += new System.ComponentModel.CancelEventHandler(textEmail_Validating);
textEmail.Validated += new System.EventHandler(textEmail_Validated);
// Add the controls to the user control.
Controls.AddRange(new System.Windows.Forms.Control[]
{
labelName,
labelAddress,
labelCityStateProvincePostal,
labelCountryRegion,
labelEmail,
textName,
textAddress,
textCity,
textStateProvince,
textPostal,
textCountryRegion,
textEmail
});
// Size the user control.
Size = new System.Drawing.Size(375, 150);
}
private void MyValidatingCode()
{
// Confirm there is text in the control.
if (textEmail.Text.Length == 0)
{
throw new Exception("Email address is a required field.");
}
// Confirm that there is a "." and an "@" in the e-mail address.
else if(textEmail.Text.IndexOf(".") == -1 || textEmail.Text.IndexOf("@") == -1)
{
throw new Exception("Email address must be valid e-mail address format." +
"\nFor example: 'someone@example.com'");
}
}
// Validate the data input by the user into textEmail.
private void textEmail_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
MyValidatingCode();
}
catch(Exception ex)
{
// Cancel the event and select the text to be corrected by the user.
e.Cancel = true;
textEmail.Select(0, textEmail.Text.Length);
// Set the ErrorProvider error with the text to display.
this.errorProvider1.SetError(textEmail,ex.Message);
}
}
private void textEmail_Validated(Object sender, System.EventArgs e)
{
//If all conditions have been met, clear the error provider of errors.
errorProvider1.SetError(textEmail, "");
}
} // End Class
} // End Namespace
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
using namespace System::ComponentModel;
namespace UserControls
{
public ref class MyCustomerInfoUserControl: public System::Windows::Forms::UserControl
{
private:
// Create the controls.
System::Windows::Forms::ErrorProvider^ errorProvider1;
System::Windows::Forms::TextBox^ textName;
System::Windows::Forms::TextBox^ textAddress;
System::Windows::Forms::TextBox^ textCity;
System::Windows::Forms::TextBox^ textStateProvince;
System::Windows::Forms::TextBox^ textPostal;
System::Windows::Forms::TextBox^ textCountryRegion;
System::Windows::Forms::TextBox^ textEmail;
System::Windows::Forms::Label ^ labelName;
System::Windows::Forms::Label ^ labelAddress;
System::Windows::Forms::Label ^ labelCityStateProvincePostal;
System::Windows::Forms::Label ^ labelCountryRegion;
System::Windows::Forms::Label ^ labelEmail;
System::ComponentModel::IContainer^ components;
public:
// Define the constructor.
MyCustomerInfoUserControl()
{
InitializeComponent();
}
// Initialize the control elements.
void InitializeComponent()
{
// Initialize the controls.
components = gcnew System::ComponentModel::Container;
errorProvider1 = gcnew System::Windows::Forms::ErrorProvider;
textName = gcnew System::Windows::Forms::TextBox;
textAddress = gcnew System::Windows::Forms::TextBox;
textCity = gcnew System::Windows::Forms::TextBox;
textStateProvince = gcnew System::Windows::Forms::TextBox;
textPostal = gcnew System::Windows::Forms::TextBox;
textCountryRegion = gcnew System::Windows::Forms::TextBox;
textEmail = gcnew System::Windows::Forms::TextBox;
labelName = gcnew System::Windows::Forms::Label;
labelAddress = gcnew System::Windows::Forms::Label;
labelCityStateProvincePostal = gcnew System::Windows::Forms::Label;
labelCountryRegion = gcnew System::Windows::Forms::Label;
labelEmail = gcnew System::Windows::Forms::Label;
// Set the tab order, text alignment, size, and location of the controls.
textName->Location = System::Drawing::Point( 120, 8 );
textName->Size = System::Drawing::Size( 232, 20 );
textName->TabIndex = 0;
textAddress->Location = System::Drawing::Point( 120, 32 );
textAddress->Size = System::Drawing::Size( 232, 20 );
textAddress->TabIndex = 1;
textCity->Location = System::Drawing::Point( 120, 56 );
textCity->Size = System::Drawing::Size( 96, 20 );
textCity->TabIndex = 2;
textStateProvince->Location = System::Drawing::Point( 216, 56 );
textStateProvince->Size = System::Drawing::Size( 56, 20 );
textStateProvince->TabIndex = 3;
textPostal->Location = System::Drawing::Point( 272, 56 );
textPostal->Size = System::Drawing::Size( 80, 20 );
textPostal->TabIndex = 4;
textCountryRegion->Location = System::Drawing::Point( 120, 80 );
textCountryRegion->Size = System::Drawing::Size( 232, 20 );
textCountryRegion->TabIndex = 5;
textEmail->Location = System::Drawing::Point( 120, 104 );
textEmail->Size = System::Drawing::Size( 232, 20 );
textEmail->TabIndex = 6;
labelName->Location = System::Drawing::Point( 8, 8 );
labelName->Size = System::Drawing::Size( 112, 23 );
labelName->Text = "Name:";
labelName->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
labelAddress->Location = System::Drawing::Point( 8, 32 );
labelAddress->Size = System::Drawing::Size( 112, 23 );
labelAddress->Text = "Address:";
labelAddress->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
labelCityStateProvincePostal->Location = System::Drawing::Point( 8, 56 );
labelCityStateProvincePostal->Size = System::Drawing::Size( 112, 23 );
labelCityStateProvincePostal->Text = "City, St/Prov. Postal:";
labelCityStateProvincePostal->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
labelCountryRegion->Location = System::Drawing::Point( 8, 80 );
labelCountryRegion->Size = System::Drawing::Size( 112, 23 );
labelCountryRegion->Text = "Country/Region:";
labelCountryRegion->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
labelEmail->Location = System::Drawing::Point( 8, 104 );
labelEmail->Size = System::Drawing::Size( 112, 23 );
labelEmail->Text = "email:";
labelEmail->TextAlign = System::Drawing::ContentAlignment::MiddleRight;
// Add the Validating and Validated handlers for textEmail.
textEmail->Validating += gcnew System::ComponentModel::CancelEventHandler( this, &MyCustomerInfoUserControl::textEmail_Validating );
textEmail->Validated += gcnew System::EventHandler( this, &MyCustomerInfoUserControl::textEmail_Validated );
// Add the controls to the user control.
array<System::Windows::Forms::Control^>^temp0 = {labelName,labelAddress,labelCityStateProvincePostal,labelCountryRegion,labelEmail,textName,textAddress,textCity,textStateProvince,textPostal,textCountryRegion,textEmail};
Controls->AddRange( temp0 );
// Size the user control.
Size = System::Drawing::Size( 375, 150 );
}
private:
void MyValidatingCode()
{
// Confirm there is text in the control.
if ( textEmail->Text->Length == 0 )
{
throw gcnew Exception( "Email address is a required field." );
}
// Confirm that there is a "." and an "@" in the e-mail address.
else
// Confirm that there is a "." and an "@" in the e-mail address.
if ( textEmail->Text->IndexOf( "." ) == -1 || textEmail->Text->IndexOf( "@" ) == -1 )
{
throw gcnew Exception( "Email address must be valid e-mail address format.\nFor example: 'someone@example.com'" );
}
}
// Validate the data input by the user into textEmail.
void textEmail_Validating( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
{
try
{
MyValidatingCode();
}
catch ( Exception^ ex )
{
// Cancel the event and select the text to be corrected by the user.
e->Cancel = true;
textEmail->Select(0,textEmail->Text->Length);
// Set the ErrorProvider error with the text to display.
this->errorProvider1->SetError( textEmail, ex->Message );
}
}
void textEmail_Validated( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
//If all conditions have been met, clear the error provider of errors.
errorProvider1->SetError( textEmail, "" );
}
};
}
// End Class
// End Namespace
package UserControls;
import System.*;
import System.Windows.Forms.*;
import System.Drawing.*;
import System.ComponentModel.*;
public class MyCustomerInfoUserControl extends System.Windows.Forms.UserControl
{
// Create the controls.
private System.Windows.Forms.ErrorProvider errorProvider1;
private System.Windows.Forms.TextBox textName;
private System.Windows.Forms.TextBox textAddress;
private System.Windows.Forms.TextBox textCity;
private System.Windows.Forms.TextBox textStateProvince;
private System.Windows.Forms.TextBox textPostal;
private System.Windows.Forms.TextBox textCountryRegion;
private System.Windows.Forms.TextBox textEmail;
private System.Windows.Forms.Label labelName;
private System.Windows.Forms.Label labelAddress;
private System.Windows.Forms.Label labelCityStateProvincePostal;
private System.Windows.Forms.Label labelCountryRegion;
private System.Windows.Forms.Label labelEmail;
private System.ComponentModel.IContainer components;
// Define the constructor.
public MyCustomerInfoUserControl()
{
InitializeComponent();
} //MyCustomerInfoUserControl
// Initialize the control elements.
public void InitializeComponent()
{
// Initialize the controls.
components = new System.ComponentModel.Container();
errorProvider1 = new System.Windows.Forms.ErrorProvider();
textName = new System.Windows.Forms.TextBox();
textAddress = new System.Windows.Forms.TextBox();
textCity = new System.Windows.Forms.TextBox();
textStateProvince = new System.Windows.Forms.TextBox();
textPostal = new System.Windows.Forms.TextBox();
textCountryRegion = new System.Windows.Forms.TextBox();
textEmail = new System.Windows.Forms.TextBox();
labelName = new System.Windows.Forms.Label();
labelAddress = new System.Windows.Forms.Label();
labelCityStateProvincePostal = new System.Windows.Forms.Label();
labelCountryRegion = new System.Windows.Forms.Label();
labelEmail = new System.Windows.Forms.Label();
// Set the tab order, text alignment,
// size, and location of the controls.
textName.set_Location(new System.Drawing.Point(120, 8));
textName.set_Size(new System.Drawing.Size(232, 20));
textName.set_TabIndex(0);
textAddress.set_Location(new System.Drawing.Point(120, 32));
textAddress.set_Size(new System.Drawing.Size(232, 20));
textAddress.set_TabIndex(1);
textCity.set_Location(new System.Drawing.Point(120, 56));
textCity.set_Size(new System.Drawing.Size(96, 20));
textCity.set_TabIndex(2);
textStateProvince.set_Location(new System.Drawing.Point(216, 56));
textStateProvince.set_Size(new System.Drawing.Size(56, 20));
textStateProvince.set_TabIndex(3);
textPostal.set_Location(new System.Drawing.Point(272, 56));
textPostal.set_Size(new System.Drawing.Size(80, 20));
textPostal.set_TabIndex(4);
textCountryRegion.set_Location(new System.Drawing.Point(120, 80));
textCountryRegion.set_Size(new System.Drawing.Size(232, 20));
textCountryRegion.set_TabIndex(5);
textEmail.set_Location(new System.Drawing.Point(120, 104));
textEmail.set_Size(new System.Drawing.Size(232, 20));
textEmail.set_TabIndex(6);
labelName.set_Location(new System.Drawing.Point(8, 8));
labelName.set_Size(new System.Drawing.Size(112, 23));
labelName.set_Text("Name:");
labelName.set_TextAlign(System.Drawing.ContentAlignment.MiddleRight);
labelAddress.set_Location(new System.Drawing.Point(8, 32));
labelAddress.set_Size(new System.Drawing.Size(112, 23));
labelAddress.set_Text("Address:");
labelAddress.set_TextAlign(System.Drawing.ContentAlignment.MiddleRight);
labelCityStateProvincePostal.set_Location(
new System.Drawing.Point(8, 56));
labelCityStateProvincePostal.set_Size(new System.Drawing.Size(112, 23));
labelCityStateProvincePostal.set_Text("City, St/Prov. Postal:");
labelCityStateProvincePostal.set_TextAlign(
System.Drawing.ContentAlignment.MiddleRight);
labelCountryRegion.set_Location(new System.Drawing.Point(8, 80));
labelCountryRegion.set_Size(new System.Drawing.Size(112, 23));
labelCountryRegion.set_Text("Country/Region:");
labelCountryRegion.set_TextAlign(
System.Drawing.ContentAlignment.MiddleRight);
labelEmail.set_Location(new System.Drawing.Point(8, 104));
labelEmail.set_Size(new System.Drawing.Size(112, 23));
labelEmail.set_Text("email:");
labelEmail.set_TextAlign(System.Drawing.ContentAlignment.MiddleRight);
// Add the Validating and Validated handlers for textEmail.
textEmail.add_Validating(new System.ComponentModel.CancelEventHandler(
textEmail_Validating));
textEmail.add_Validated(new System.EventHandler(textEmail_Validated));
// Add the controls to the user control.
get_Controls().AddRange(new System.Windows.Forms.Control[] {
labelName,labelAddress, labelCityStateProvincePostal,
labelCountryRegion,labelEmail, textName, textAddress, textCity,
textStateProvince, textPostal, textCountryRegion, textEmail });
// Size the user control.
set_Size(new System.Drawing.Size(375, 150));
} //InitializeComponent
private void MyValidatingCode() throws Exception
{
// Confirm there is text in the control.
if (textEmail.get_Text().length() == 0) {
throw new Exception("Email address is a required field.");
}
// Confirm that there is a "." and an "@" in the e-mail address.
else {
if (textEmail.get_Text().IndexOf(".") == -1 ||
textEmail.get_Text().IndexOf("@") == -1) {
throw new Exception("Email address must be valid e-mail"
+ "address format." + "\nFor example: 'someone@example.com'");
}
}
} //MyValidatingCode
// Validate the data input by the user into textEmail.
private void textEmail_Validating(Object sender,
System.ComponentModel.CancelEventArgs e)
{
try {
MyValidatingCode();
}
catch (Exception ex) {
// Cancel the event and select the text to be corrected by the user.
e.set_Cancel(true);
textEmail.Select(0, textEmail.get_Text().length());
// Set the ErrorProvider error with the text to display.
this.errorProvider1.SetError(textEmail, ex.get_Message());
}
} //textEmail_Validating
private void textEmail_Validated(Object sender, System.EventArgs e)
{
//If all conditions have been met, clear the error provider of errors.
errorProvider1.SetError(textEmail, "");
} //textEmail_Validated
} //End Class MyCustomerInfoUserControl
继承层次结构
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.UserControl
System.Web.UI.Design.WebControls.ParameterEditorUserControl
线程安全
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0
请参见
参考
UserControl 成员
System.Windows.Forms 命名空间
ContainerControl 类
Form 类