以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]定义下拉列表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=111449)

--  作者:blsu33
--  发布时间:2017/12/22 9:02:00
--  [求助]定义下拉列表
老师,
  如何定义一个下拉列表呢?

#Region "Public Properties"           

<System.ComponentModel.DisplayName("下拉列表"), _
System.ComponentModel.Category("属性"), _
System.ComponentModel.Description("下拉选项"), _
System.ComponentModel.ReadOnly(True)> _
Public Property bh() As String
Get
Return Dbh
End Get
Set(ByVal value As String)
Dbh = value
End Set
End Property








--  作者:有点甜
--  发布时间:2017/12/22 9:28:00
--  

参考 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:propertygrid.table

http://blog.csdn.net/luyifeiniu/article/details/5426960#%E5%88%9B%E5%BB%BA%20PropertyGrid%20%E6%8E%A7%E4%BB%B6

 

c#代码转vb.net代码 http://converter.telerik.com/

 


--  作者:blsu33
--  发布时间:2017/12/22 10:16:00
--  
老师,
   希望下拉数据来源于表B,条件是选定的 编号 姓名 取得下拉数据,怎么写全局代码呢,劳烦老师在给改下?

\'<System.ComponentModel.DisplayName("下拉列表"), _
\'System.ComponentModel.Category("属性"), _
\'\'System.ComponentModel.TypeConverter(Gettype(FileNameConverter))> _
\'Public Property sx() As String
\'Get
\'Return dsx
\'End Get
\'Set(ByVal value As String)
\'dsx = value
\'End Set
\'End Property

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:propertygrid.table





--  作者:有点甜
--  发布时间:2017/12/22 10:48:00
--  

Public Class FileNameConverter
    Inherits System.ComponentModel.StringConverter

    Public Overrides Function GetStandardValuesSupported(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
        Return True
    End Function

    Public Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As StandardValuesCollection
        Dim obj = context.Instance
        Dim ls As List(of String) = DataTables("表B").GetValues("下拉列表数据", "编号 = \'" & obj.bh & "\' and 姓名 = \'" & obj.xm & "\'")
        Return New StandardValuesCollection(ls.ToArray)

    End Function

    Public Overrides Function GetStandardValuesExclusive(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
        Return False
    End Function
End Class

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:propertygrid (1).table


--  作者:blsu33
--  发布时间:2017/12/22 11:22:00
--  
老师,
  全局代码的“事件”,想要修改为查找的方式 如何写

Public Sub pgd_PropertyValueChanged(ByVal sender As System.Object, ByVal e As system.windows.forms.propertyvaluechangedeventargs)
  Dim rw As DataRow = DataTables("档案").find("编号"=\'" & entity.name & "\' And 姓名=\'" & f.name & "\'")
If rw IsNot Nothing Then
  \'e.oldvalue            原值
  \'e.ChangedItem.label   标题
  \'e.ChangedItem.value   新值
  rw(e.changeditem.label) = e.changeditem.value
Else
rw("编号") = e.changeditem.value
rw("姓名") = e.changeditem.value
rw("下拉列表") = e.changeditem.value
End If
End Sub

--  作者:blsu33
--  发布时间:2017/12/22 11:39:00
--  
这样写有错误,怎么改呢?

\'Public Class ConvertHelper
\'Public Sub pgd_PropertyValueChanged(ByVal sender As System.Object, ByVal e As system.windows.forms.propertyvaluechangedeventargs)
\'Public Shared Sub ToDataRow(ByVal entity As object, dt As DataTable)
\'Dim fs As System.Reflection.PropertyInfo() = entity.Gettype.GetProperties
\'Dim f As System.Reflection.PropertyInfo
\'For Each f In fs
    \'Dim dr As DataRow = dt.find("编号=\'" & entity.name & "\' And 姓名=\'" & f.name & "\'")\'\'\'\'\'\'1
    \'If dr Is Nothing Then
        \'dr = dt.addnew
        \'dr("姓名") = entity.name
        \'dr("下拉列表") = f.name
        \'dr(e.changeditem.label) = e.changeditem.value
    \'End If
    \'Dim o As Object = f.GetValue(entity, Nothing)
    \'If (o Is Nothing) Then
        \'dr("下拉列表") = DBNull.Value
    \'Else
        \'dr(e.changeditem.label) = e.changeditem.value
    \'End If
\'Next
\'End Sub
\'End Sub
\'End class

[此贴子已经被作者于2017/12/22 11:39:37编辑过]

--  作者:有点甜
--  发布时间:2017/12/22 12:00:00
--  

参考

 

Public Sub pgd_PropertyValueChanged(ByVal sender As System.Object, ByVal e As system.windows.forms.propertyvaluechangedeventargs)

Dim rw As DataRow = DataTables("档案").find("编号=\'" & sender.SelectedObject.bh & "\'")
\'e.oldvalue            原值
\'e.ChangedItem.label   标题
\'e.ChangedItem.value   新值
msgbox(rw("姓名"))
rw(e.changeditem.label) = e.changeditem.value
End Sub


--  作者:blsu33
--  发布时间:2017/12/22 12:24:00
--  
嗯 谢谢老师
还有一个问题
假如 窗口 有一个BTN 按钮控件 名字和档案 表 编号一致 怎么能点击这个按钮,弹出 这个property 



--  作者:blsu33
--  发布时间:2017/12/22 12:25:00
--  
将这个property 绑定到指定的控件中
--  作者:有点甜
--  发布时间:2017/12/22 14:11:00
--  
以下是引用blsu33在2017/12/22 12:24:00的发言:
嗯 谢谢老师
还有一个问题
假如 窗口 有一个BTN 按钮控件 名字和档案 表 编号一致 怎么能点击这个按钮,弹出 这个property 


 

去看afterLoad事件和目录树点击事件的代码。