Seznam komponent ve vlastním property editoru   zodpovězená otázka

VB.NET, WinForms

Snad se mi můj problém podaří nastínit.

V projektu mám nevizuání komponentu "Adresa", a další komponentu "Seznam" s vlastností "Adresy" definovanou

	Public _Adresy As List(Of Adresa)
	Public Property Adresy() As String
		Get
			Return _Adresy
		End Get
		Set(ByVal value As String)
			_Adresy = value
		End Set
	End Property

Vlastnost má vlastní Property editor s CheckedListBox, v kterém má být seznam komponent typu Adresa vložených do projektu.

Problém je, že nevím jak naplnit daný CheckedListBox.

Podobně jako

pokud mám definovanou vlastnost

Public _Adresy As Adresa
	Public Property Adresy() As Adresa
		Get
			Return _Adresy
		End Get
		Set(ByVal value As Adresa)
			_Adresy = value
		End Set
	End Property

tak se mi v properties při výběru zobrazí v comboboxu seznam komponent typu Adresa v projektu.

Díky za jakýkoliv nápad

nahlásit spamnahlásit spam 0 odpovědětodpovědět

tak se mi po dlouhém hledání a bádání povedlo najít pěkný příklad, po menších úpravách zobrazuje v seznamu vložené Labely , není zde napsán UserForm pro zobrazení

Public Class PlcAdrListEditor
	Inherits UITypeEditor

	Public Overrides Function EditValue(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal provider As System.IServiceProvider, ByVal value As Object) As Object

		Dim AvaibleComponents As List(Of Component) = New List(Of Component)
		Dim EditorService As IWindowsFormsEditorService = Nothing
		If (context IsNot Nothing AndAlso context.Instance IsNot Nothing AndAlso provider IsNot Nothing) Then
			EditorService = CType(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService)
			If EditorService IsNot Nothing Then
				For Each CurrComponent As Component In context.Container.Components
					If (TypeOf (CurrComponent) Is Label) Then
						AvaibleComponents.Add(CurrComponent)
					End If
				Next
			End If
		End If
		Using editor As PlcAdrlistView = New PlcAdrlistView(DirectCast(AvaibleComponents, List(Of Component)))
			DirectCast(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService).ShowDialog(editor)
			Return editor.SelectedComponents
		End Using
	End Function
	Public Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
		Return UITypeEditorEditStyle.Modal' Určuje, že se má zobrazit nabídka, nikoliv dialog.
	End Function

End Class

Snad případně někomu pomůže

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback