Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
[vb2008] ControlLibrary ed ereditarietà
Ultimo Post 05 mag 2010 11.27 by Hidden. 4 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Autore Messaggi Non risolto

Posts:663

--
03 mag 2010 11.14  
Salve a tutti spero di riuscire a far capire qual è il mio problema.
Allora sto cercando ci crearmi una combobox multicolonna che abbia la propiertà datasorce.

Per fare questo ho creato un nuovo progetto ControlLibrary
ho aggiunto una nuova classe


Public Class TestCOmbo
Inherits ComboBox

Dim dt As New DataTable("DT")
Public Sub New()
dt = Me.DataSource
End Sub

Protected Overrides Sub OnDropDown(ByVal e As System.EventArgs)
MyBase.OnDropDown(e)
Dim frm As New Form
Dim dv As New DataGridView
dv.Dock = DockStyle.Fill
frm.Controls.Add(dv)
dv.Show()
dv.DataSource = dt
frm.ShowDialog()
End Sub
End Class

Ok ora ho due problemi che non so spiegarmi

1 quando viene scatenato l'evento dropdown del mio controllo
viene visualizzata la form ma non visualizza la datagridview

2 dopo aver chiuso la form viene comunque visulizzato l'elenco coiè il dropdown classico della combobox. con Overrrides io non sostituisco il codice associato all'evento?

Potreste aiutarmi in merito vi ringrazio infinitamente

Posts:811

--
04 mag 2010 16.40  
2) Certo che lo sostituisci, ma se esegui Mybase.Ondropdown ovviamente esegui anche l'evento di default che presumo disegni il lenzuolino...

1) Perché una form? non ti basta creare il controllo come controllo non visibile sulla form stessa e renderlo visibile al momento giustoposizionandolo in base alla posizione della combo?

saluti
Sabrina
Sabrina

Posts:663

--
05 mag 2010 07.09  
1) Perché una form? non ti basta creare il controllo come controllo non visibile sulla form stessa e renderlo visibile al momento giustoposizionandolo in base alla posizione della combo?


Scuasa ma non ho capito cosa intendi con aggiungere un controllo sulla form stessa.
Allora giusto ti spiego cosa sto facendo.
Mi sto creando un controllo personalizzato che eredita la classe combobox.
Per farlo ho creato un nuovo progetto librerie classi ed ho inserito una classe ed una form.

Nella classe ho inserito il seguente codice( i commenti sono riportati di seguito)

Imports ComponentFactory.Krypton.Toolkit

Public Class Class1
Inherits DevExpress.XtraEditors.ComboBoxEdit

Dim frm As New xfrm
Dim dt As New DataTable("DT")
Dim dtv As New DataView
Dim ValMemb As String

Public Sub New()
End Sub

Public Overloads Property DataSource() As Object
Get
Return dt
End Get
Set(ByVal value As Object)
dt = value
dtv.Table = dt
End Set
End Property

'il controllo combobox che utilizzo non ha la proprietà valuemember e quindi la creao io
Public Property ValueMember() As String
Get
Return ValMemb
End Get
Set(ByVal value As String)
ValMemb = value
End Set
End Property

'La combobox che utilizzo non ha l'evento DropDown quindi gestisco un evento in sostituzione che è l'evento clickbutton
Protected Overrides Sub OnClickButton(ByVal buttonInfo As DevExpress.XtraEditors.Drawing.EditorButtonObjectInfoArgs)
MyBase.OnClickButton(buttonInfo)
Me.Text = ""
frm = New xfrm
frm.ControlBox = False
frm.FormBorderStyle = FormBorderStyle.FixedToolWindow
frm.AutoScroll = True
frm.AutoSize = True
frm.AutoSizeMode = AutoSizeMode.GrowOnly
dt = Me.DataSource
frm.kdgv.ReadOnly = True
frm.kdgv.DataSource = dtv
frm.kdgv.Dock = DockStyle.Fill
AddHandler frm.kdgv.CellClick, AddressOf Test
frm.Show()

'questo pezzo di codice dovrebbe farmi comparire la form sotto la mia combobox ma non funziona, non capisco ancora il perche
Dim x As Size
x.Width = 600
Dim mag As New Point(0, Me.Size.Height)
xfrm.Location = New Point(Me.PointToScreen(Me.Location)) + mag
frm.Show()
End Sub

'Questa mi serve per inviare il valore selezionato alla proprietà text della mia combobox
Private Sub Test(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
Dim dvx As New DataGridView
dvx = CType(sender, DataGridView)
Me.Text = dvx(Me.ValueMember, e.RowIndex).Value
frm.Close()
End Sub

'Questo mi serve per filtrare la datagridview mentre l'utente scrive
Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
MyBase.OnTextChanged(e)
If Me.Text <> "" And Me.ValueMember <> "" Then
dtv.RowFilter = String.Format("{0} like '{1}%'", Me.ValueMember, Me.Text)
Else
dtv.RowFilter = Nothing
End If
End Sub

End Class

Secondo voi come va concettualmente?

Diciamo che il mio scopo finale è crearmi un controllo personalizzato da riutilizzare.
Grazie per il vostro aiuto



Posts:811

--
05 mag 2010 11.09  
Lo scopo per cui stai facendo questo è lodevole e certamente dettato dal budget, però creare un controllo parametrizzato generico riutilizzabile non è una cosa facile ne indolore, ecco perché Janus, Infragistics, Component one ecc. vivono vendendo componenti.
Detto questo ho capito cosa vuoi fare e perché la form, però non ti posso aiutare più di tanto, perché qualche anno fa, dopo aver verificato quanto tempo ci vuole a fare un controllo personalizzato funzionante ho stabilito che se produco software non produco componenti quindi mi costa meno acquistarli. ;o)

ti consiglio di fare un giro su Codeproject ed uno su Codeplex per verificare se qualcuno ha già realizzato qualcosa del genere e prendere ispirazione.

saluti
Sabrina

Posts:663

--
05 mag 2010 11.27  
Ok ti ringrazio per i tuoi consigli.
Che non era facile e nemmeno indolore devo dire che lo sapevo anche se non immaginavo quanto.
Però quello che sto facendo lo sto facendo al solo scopo didattico (e in minima parte economico) e poi perchè ho scaricato alcuni controlli gratuiti della DevExpress e altri della Krypton mettendoli insieme stavo pensando di crearmi una bella ComboBoxMultiColumn con tanto di datasource e stile di visualizzazione. Devo dire che a parte alcuni blocchi mentali su alcune funzionalità, tipo mettere insieme autocomplete e la selezione delll'elemento più vicino a quello scritto, per il resto sembra andare tutto a vele sgonfie e motore rotto, praticamente sto remando. Se prima non burcio il cervello spero di riuscire nell'impresa.

Grazie comunque dei suggerimenti e consigli.
Non sei autorizzato ad inviare una risposta.

Active Forums 4.1
       
Articoli
Iniziare da zero con WPF (Parte 3)
Litigi, Divinità, Pennelli e Frigoriferi. (seconda parte)
2007/11/22 | Autore: Sabrina Cosolo
SQL Server Nozioni base (parte 1)
Come creare un database in SQL Server Usando Sql Management Studio
2008/03/09 | Autore: Sabrina Cosolo
Programmer Paster Addin per Expression Web 1 e 2
Implementare un Addin per Expression Web 1 e 2 che usa la libreria ProgrammerPaster
2009/02/26 | Autore: Rudy Azzan
Assembly Strong Named
Firma digitale degli Assembly, uso e funzionalità
2007/08/05 | Autore: Sabrina Cosolo
Panoramica degli elementi base del WPF
Come iniziare a capire com'è fatto il WPF [Windows Presentation Foundation] (parte 2)
2007/07/30 | Autore: Patrizia Cosolo
Fritto Misto - Classi di uso comune(parte 3)
Helper: Due interfacce per implementare classi Entity
2007/10/22 | Autore: Sabrina Cosolo
Fritto Misto - Classi di uso comune (Parte 6)
Helper: Alcuni metodi per organizzarci nell'uso del file System
2007/10/28 | Autore: Sabrina Cosolo
Panoramica del Sistema dei Comandi
Come iniziare a capire com'è fatto WPF (parte 5)
2007/09/30 | Autore: Patrizia Cosolo
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.