輕輕松松用PropertyGrid控制項。

过去编写简单的PropetyGrid控制项非常复杂,如今使用.NET则十分容易。只需加入.NET内建的PropertyGrid控制项,编写一个特别的EmployeeProp Class,在Class声明前加tag,再将PropertyGrid1.SelectedObject的值设为该Class对象变量即可完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(華版)

過去如果要冩一個簡單的PropetyGrid控制項(圖一)可以説是难以登天(復雜的很)。。。但是現在.NET就可以用四個字來形容。。。非常容易!


  o_PropertyGrid.jpg

你只需加入.NET内建的PropertyGrid控制項,然後在冩一個很簡單的EmployeeProp Class就可以了。但是此Class就有一點點特别。。。那就是在Class的聲明前加上此tag。

None.gif < DefaultPropertyAttribute( " Title " ), DescriptionAttribute( "" ) >

然後于每一項Property都要加上以下的tag。
None.gif < CategoryAttribute( "" ), _
None.gifBrowsable(
True | False ), _
None.gif[
ReadOnly ]( True | False ), _
None.gifBindableAttribute(
True | False ), _
None.gifDefaultValueAttribute(
"" ), _
None.gifDesignOnly(
False ), _
None.gifDescriptionAttribute(
"" ) >


當编冩好了EmployeeProp Class,下一步就是把PropertyGrid1.SelectedObject的值數設為剛聲明並實例EmployeeProp Class的對象變量就完成了。

點撃下載程序代碼

Form1的源代碼

ExpandedBlockStart.gif ContractedBlock.gif Public   Class Form1 Class Form1
InBlock.gif    
Inherits System.Windows.Forms.Form
InBlock.gif
InBlock.gif    
' 宣告ep為EmployeeProp Class的變數
InBlock.gif
    Private ep As EmployeeProp
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
InBlock.gif
InBlock.gif        
'// 建立EmployeeProp Class的實軆
InBlock.gif
        ep = New EmployeeProp
InBlock.gif
InBlock.gif        
'// 將SelectedObject的值數改為ep
InBlock.gif
        PropertyGrid1.SelectedObject = ep
InBlock.gif
ExpandedSubBlockEnd.gif    
End Sub

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
InBlock.gif
InBlock.gif        
' 讀取所輸入員工資料
InBlock.gif
        MessageBox.Show("員工" + ep.姓氏 + ep.名字 + "" + ep.職位 + "" + "聘請于" + ep.聘請日期)
InBlock.gif
ExpandedSubBlockEnd.gif    
End Sub

ExpandedBlockEnd.gif
End Class

EmployeeProp Class的源代碼
None.gif Imports  System.ComponentModel
None.gif
None.gif
< DefaultPropertyAttribute( " Title " ), _
None.gifDescriptionAttribute(
" 員工資料 " ) >  _
ExpandedBlockStart.gifContractedBlock.gif
Public   Class EmployeeProp Class EmployeeProp
InBlock.gif    
Private _FirstName As String
InBlock.gif    
Private _LastName As String
InBlock.gif    
Private _Age As String
InBlock.gif    
Private _Gentle As String
InBlock.gif    
Private _DateHire As Date
InBlock.gif    
Private _Position As String
InBlock.gif    
Private _Department As String
InBlock.gif    
Private _Salary As String
InBlock.gif
InBlock.gif    
<CategoryAttribute("員工個人資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工的名字。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 名字()Property 名字() As String
InBlock.gif        
Get
InBlock.gif            
Return _FirstName
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _FirstName 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("員工個人資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工的姓氏。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 姓氏()Property 姓氏() As String
InBlock.gif        
Get
InBlock.gif            
Return _LastName
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _LastName 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("員工個人資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工的年龄。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 年龄()Property 年龄() As String
InBlock.gif        
Get
InBlock.gif            
Return _Age
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _Age 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("員工個人資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工的性别。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 性别()Property 性别() As String
InBlock.gif        
Get
InBlock.gif            
Return _Gentle
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _Gentle 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("人事部資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工聘請日期。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 聘請日期()Property 聘請日期() As Date
InBlock.gif        
Get
InBlock.gif            
Return _DateHire
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As Date)
InBlock.gif            _DateHire 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("人事部資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工的执行職位。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 職位()Property 職位() As String
InBlock.gif        
Get
InBlock.gif            
Return _Position
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _Position 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("人事部資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工所服務的部門。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 部門()Property 部門() As String
InBlock.gif        
Get
InBlock.gif            
Return _Department
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _Department 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
InBlock.gif    
<CategoryAttribute("人事部資料"), _
InBlock.gif       Browsable(
True), _
InBlock.gif       [
ReadOnly](False), _
InBlock.gif       BindableAttribute(
False), _
InBlock.gif       DefaultValueAttribute(
""), _
InBlock.gif       DesignOnly(
False), _
InBlock.gif       DescriptionAttribute(
"員工所领取的薪金。")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Property 薪金()Property 薪金() As String
InBlock.gif        
Get
InBlock.gif            
Return _Salary
InBlock.gif        
End Get
InBlock.gif        
Set(ByVal Value As String)
InBlock.gif            _Salary 
= Value
InBlock.gif        
End Set
ExpandedSubBlockEnd.gif    
End Property

InBlock.gif
ExpandedBlockEnd.gif
End Class

None.gif
然後于每一項Property都要加上以下的tag。 :

 

转载于:https://www.cnblogs.com/hackzai/archive/2005/03/03/112510.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值