Quantcast
Channel: Visual Basic Tips and Tricks
Viewing all 2212 articles
Browse latest View live

Errore -2147467259

$
0
0

Salve a tutti,

ho una applicazione (scritta da me) per la gestione di un database su file Access.

Questa applicazione gira senza problemi su un computer (quello dove ho scritto il codice) mentre su un secondo computer (dove ho installato l'applicazione) viene generato l'errore numero -2147467259; descrizione: "Errore di rete o disco"; sorgente errore: "Microsoft JET Database Engine". Per installare l'applicazione ho creato il pacchetto di distribuzione con lo "Strumento di MS Visual Basic 6.0"

Ho cercato in rete una descrizione esaustiva dell'errore ma non ho trovato niente. 

Qualcuno sa darmi indicazioni per identificare questo errore e che cosa lo genera?

Ringrazio in anticipo.

Otello




problema con file risorse per multilingue in classe property grid

$
0
0

Ciao Ragazzi, ripropongo un quesito irrisolto di qualche settimana fa.

Ho una property grid in italiano che funziona perfettamente ed una classe che si occupa di popolarla.

il codice è questo:

<DisplayName("UK Lunghezza del singolo Cordone (mm)"),     Description("Lunghezza del singolo cordone (mm)"), 
Browsable(True), [ReadOnly](False), 
Category("UK Saldatura")>

Adesso ho la necessità di cambiare i dati dei testi con il file risorse.

       <DisplayName(My.Resources.TuttoForm.LunghezzaWeld()),     
Description("Lunghezza del singolo cordone (mm)"), 
Browsable(True), [ReadOnly](False), 
Category("UK Saldatura")>

in tutto il codice abbiamo senza problemi sostituito tutte le stringhe con il riferimento alla stringa del file risorse.

solo nella property grid questo non mi riesce.

l'errore è sempre:

 
ErroreBC30059È necessaria l'espressione costante.


vuole solo testo tra virgolette!!

Come posso risolvere il problema?

p.s.: l'unica cosa che mi viene in mente è sdoppiare la classe e farne un'altra in inglese ed a secondo della lingua instanziare la classe diversa bypassando il file risorse.

 

Grazie Sebastiano

 

  

 

elementi sottoclasse list a numero prefissato in funzione di una variabile globale

$
0
0
Ciao Ragazzi, ho un oggetto asta, con tante proprietà, lunghezza, peso , colore etc...
Ho dichiarato anche una sottolista di elementi.

public List RisultatiAsta = new List();. 

Con il metodo add posso inserire gli elementi, ma vorrei che gli elementi della list siano a numero fisso. Ovvero dipendenti da una variabile di progetto. (max 40 iltems di un oggetto con 8 propriet&agrave

Potrei gestire il count della lista, ma mi piacerebbe trovare la lista pronta già generata. 

c'è un modo per generare la lista senza add alla generazione dell'oggetto principale?
aggiungo che ad un certo punto la variabile globale può aumentare o diminuire e la relativa collection, come numero di items deve essere modificata

Spero di essere stato chiaro.
Ciao
Sebastiano Floridia

Leggere dati da diversi file Excel (era: Principiante Chiede Aiuto!!! )

$
0
0

Buongiorno a tutti!!!

Chiedo umilmente il vostro aiuto per risolvere un errore di cui non capisco l'origine del mio programma scritto in visual basic. Premetto dicendo che sono assolutamente un principiante e che il codice che ho scritto è stato frutto di un minimo di conoscenza di programmazione (ma davvero minimo) e da quanto ho potuto trovare in rete e sul forum!

Il programma che ho scritto non è altro che un'interfaccia grafica ad alcuni fogli excel usati come database (non mi uccidete!!! ;-)) tramite la quale è possibile inserire i dati, salvarli e visualizzarli in seguito. I dati inseriti fanno riferimento a una giornata di lavoro.I file excel sono organizzati in 12 foglio (1 per ciascun mese) e su ogni foglio ho tante righe quanti i giorni del mese associato.

Veniamo al nocciolo della questione: Il programma, quando si apre, deve mostrare in una delle svariate textbox un dato inserito il giorno prima; ovviamente questo deve valere anche se il giorno in questione è il primo del mese: fin qui nessun problema... creo una nuova applicazione excel che fa riferimento a un nuovo foglio e gli dico di leggere l'ultima riga

oExcel3 = CreateObject("Excel.Application")
oBook3 = oExcel3.Workbooks.Open(DIR3)         #Specifico la directory del file
oSheet3 = oBook3.WorkSheets(Form2.ComboBox1.Items(m - 2))   #Specifico il foglio (mese) 

 

Il problema nasce quando il giorno in questione è il 1 Gennaio: in questo caso il dato precedente deve essere recuperato da un altro file... sostanzialmente il codice che ho scritto è analogo a quanto vi ho mostrato prima (con directory scelta appositamente) ma quando eseguo un controllo per verificare chela data aperta sia di un nuovo giorno (dati da inserire) o uno vecchio (dati gia inseriti) mi da l'errore "riferimento a un oggetto non impostato su un'istanza di oggetto".

Il problema è che non capisco proprio il motivo visto che le stringhe di codice sono esattamente le stesse dei casi "primo del mese".

 

Vi incollo il mio codice sperando possiate aiutarmi!!!

 

Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        msc = CreateObject("MSScriptControl.ScriptControl")
        msc.Language = "VBScript"
        DateTimePicker1.Value = New DateTime(Val(y), Val(m), Val(int))

        m = DateTimePicker1.Value.Month
        y = DateTimePicker1.Value.Year
        int = DateTimePicker1.Value.Day

        DIR2 = My.Settings.PercorsoDataBase + "\" + y + ".xls"

        oExcel2 = CreateObject("Excel.Application")
        oBook2 = oExcel2.Workbooks.Open(DIR2)
        oSheet2 = oBook2.WorkSheets(Form2.ComboBox1.Items(m - 1))

        Dim cella2 As Object = oSheet2.Cells

        TextBox1.Text = cella2(int + 1, 5).Value
        TextBox2.Text = cella2(int + 1, 6).Value
        .

        .

        .
        TextBox39.Text = cella2(int + 1, 42).Value
        TextBox38.Text = cella2(int + 1, 43).Value

        If int = 1 Then
            If m = 1 Then
                DIR3 = My.Settings.PercorsoDataBase + "\" + Convert.ToString(Val(y) - 1) + ".xls"

                oExcel3 = CreateObject("Excel.Application")
                oBook3 = oExcel3.Workbooks.Open(DIR3)
                oSheet3 = oBook3.WorkSheets(Form2.ComboBox1.Items(11))

                Dim rng3 As Object = oSheet3.UsedRange

                ROW3 = rng3.Rows.Count

                If cella2(int + 1, 43).Value = 0 Then
                    Dim cella3 As Object = oSheet3.Cells
                    TextBox32.Text = cella3(ROW3, 43).Value
                    cella3 = Nothing
                Else
                    TextBox32.Text = cella2(int + 1, 32).Value
                End If

                rng3 = Nothing
                oSheet3 = Nothing
                oBook3.Close()
                oBook3 = Nothing
                oExcel3.Quit()
                oExcel3 = Nothing
            Else

                  CASO PRIMO DEL MESE

 End If

    CASO NORMALE

End If

 

La parte in grassetto è la riga di codice che mi genera l'errore! 

Vi prego... Sto diventando matto!!!

 

PS: mi rendo conto che il codice è tutto fuorchè bello, elegante, efficiente ecc ecc... probabilmente la maggior parte di voi si metterà le mani nei capelli leggendolo... sappiate che vista la mia inesperienza ho preferito arrivare a un qualcosa che funzionasse a discapito ahimè dell'eleganza!!! Siate clementi!!! ;-)

versione di sql server da usare

$
0
0

Sto pensando alla migrazione di un db access a db sql server. In questa fase vorrei semplicemente un sql server sul mio pc per cominciare a fare tutti i test sui programmi che girano interfacciandosi ad access con ADO.NET (OLEDB).

Ho guardato sul sito MS e credo di aver individuato di poter usare SQL SERVER EXPRESS 2014 SP1 (compatibile con S.O. del mio PC dalla tabella MS) così l'ho scaricato.

Nel download vedo che ci sono sostanzialmente due macro tipologie: 32 o 64 bit.

I miei programmi (in VB .NET 2008 quindi framework 3.5 SP1) sono tutti impostati con l'opzione di compilazione (del pannello progetti) X86 Only perchè il 3.5 non ha ADO.NET per 64bit (quando mi dimentico di farlo e rimane AUTO e lo faccio andare su un pc a 64bit il programma va in errore sull'accesso dati).

Quindi la domanda: devo necessariamente usare SQL Server a 32bit? E' indifferente? Oppure SQL SERVER a 64bit si interfaccia solo con il framework ADO a 64bit?

Grazie a tutti

Comunicare variazioni tra applicazioni differenti

$
0
0

Ho diverse applicazioni che mostrano e/o modificano gli stessi dati. In particolare un'applicazione gestisce i dati (inserimenti/aggiornamenti/cancellazioni) ed è in uso solo a determinati utenti; l'altra è una sorta di navigatore read-only degli stessi dati data in uso a molti più utenti.

Quello che vorrei capire è come posso fare affinchè una modifica fatta sull'applicativo R/W possa essere "comunicata" all'applicativo R-Only in modo che quest'ultimo aggiorni la visualizzazione corrente.

Naturalmente quando gli applicativi sono entrambi aperti ma su PC differenti

Giusto per essere molto banale vorrei fare la stessa cosa che fa windows quando un utente aggiorna il filesystem che un altro utente sta visualizzando.

Spero che si possa fare con quanto messo a disposizione dal framework perchè vorrei evitare di dovermi confrontare con la "messaggistica" di windows.

Grazie

Stefano

Autorizzazioni SQL SERVER

$
0
0

Salve ,

ho installato sql server 2008 r2  e sql management studio, tutto è andato a buon fine.

Quando provo a creare un nuovo account mi appare il seguente errore"Impossibile eseguire Crea per account di accesso XXX/XXX" 

l'SO è windows 10.

Premetto che su un portatile simile tutto funziona

vbSendMail.dll

$
0
0
Sto cercando di scrivere un codice in VB6 per spedire un Email con attachment.

Ho fatto una ricerca nel sito ed ho capito che devo usare la "famosissima" vbSendMail.dll


Sono riuscito a scaricarla e registrarla grazie ai suggerimenti di Giorgio Brausi in
http://www.visual-basic.it/Forum/tabid/151/aft/36725/afpg/2/Default.aspx#164253

Pero' non so come usare la DLL. Ho capito che e' stata preparata dal "freevbcode.com" ove una ricerca Google fa sperare di trovare codici di esempio:

-----------------

FreeVBCode code snippet: vbSendMail.dll Version 3.65 ...
www.freevbcode.com/ShowCode.asp?ID=109
This is the snippet vbSendMail.dll Version 3.65-- Easy E-mail Sending in VB, with Attachments on FreeVBCode. 
The FreeVBCode site provides free Visual Basic code ...

----------------

pero' ogni tentativo di raggiungere "freevbcode.com" mi risponde che
"This site can’t be reached".

Stesso problema con "vbforums.com".

Qualcuno puo' darmi una dritta od un link per trovare codici di esempio su come usare vbSendMail.dll ?

Grazie!


Full outer Join su una subquery

$
0
0

Buongiorno,

eseguo un self join sulla tabella letture in modo da avere su uno stesso record per ogni matricola la lettura attuale e la lettura precedente.

Vorrei però che mi comparissero anche le matricole per le quali non sono state effettuate la lettura attuale o la lettura precedente, esponendo cioè una sola lettura e lasciando in bianco l’altra. Di regola la clausola full join dovrebbe dare questo risultato, però in questo caso, con l’applicazione della subquery illustrata, mi ritornano le righe "senza corrispondenza" solo nel lato sinistro, cioè se c’è una matricola per la quale nonè stata eseguita la lettura attuale, ma solo quella precedente, questa non viene elencata.

 

Per semplificare, diciamo che conosco già gli identificativi delle due letture da prelevare nella select.

 

declare @IdLettura int=4

declare @IdLetturaPrec int=1

 

SELECT prec.Consumo, prec.IdLettura, L.*FROM Letture as L full outerjoin(

SELECTIdLettura, ConsumoFROM Letture where IdLettura=@IdLetturaPrec)as Prec

ON L.Matricola=prec.Matricola

wherel.IdLettura=@IdLettura

Spero di essere riuscito a spiegarmi

Grazie

Daniele Giura

Inviare una mail da codice con outlook inserendo anche la firma personalizzata

$
0
0

Buongiorno a tutti

vorrei essere anche di aiuto ogni tanto, visto che siete una fonte inesauribile di soluzioni e oggi mi sono imbattuto in questo problemino.

dovendo automatizzare l'invio di mail aziendali, mi si è posto il problema di inviare le mail con la firma digitale che ogni utente ha di default su outlook.

io ho risolto così:

Dim obj As New Outlook.Application()
Dim item As Outlook.MailItem
item = obj.CreateItem(Outlook.OlItemType.olMailItem)
With item
.To = "destinatario"
.CC = "x conoscenza"

'a questo punto con display apre la mail come nuova e imposta di default la firma di outlook
.Display()
.HTMLBody = "Testo mail"& item.HTMLBody
.Subject = "oggetto mail"
.Attachments.Add("percorso")
.Send()
End With

mi è piaciuta perchè molto semplice e immediata.

Ciao grazie al forum!!!

Leggere i dati di un db mysql

$
0
0

Salve a tutti, torno a scrivere..

io ho un db mysql su una mia vps, vorrei tramite un programmino semplice su vb6 leggerli.

ad esempio in una datagrid con oledc ecc.

potete aiutarmi?

Da Excel a Vbnet a MySql

$
0
0

Salve a tutti, sto prendendo mano con vbnet

avrei bisogno di creare un software, che importa un file Excel (x colonne) , si visualizzano i dati all'interno di una griglia,  e premendo un bottone , inserisce i dati in un db mysql.

come posso fare?

Accesso a mysql e lettura scrittura dati

$
0
0

salve a tutti

sto prendendo mano a vbnet, venendo da vb6.

vorrei sapere come faccio a creare una semplice datagrid, dove visualizzare ed editare i dati di una tabella Mysql che ho su una vps

come faccio?

excel 2010 funzione personalizzata

$
0
0

Mi trovo nei problemi più grandi di questo mondo ho bisogno di aiuto su una stupidaggine di vba Excel (mai usato) mi date una soluzione pronta (mai chiesta) perché non voglio imparare a usare vba Excel, descrivo il mio enigma:

celle 

A1  contiene "aa+bb"

A2  contiene "aa+cc"

A3 contiene "gg+aa"

B1 contiene "ff+aa"

B2 contiene "ff+bb"

dovrei fare una funzione che mi splitta il "+" e mi restituisca il totale di un valore richiesto

io chiedo alla function:

restituiscimi il totale di quante volte sia contenuto il valore (aa) il tutte le celle che voglio controllare in questo caso la funzione mi deve restituire (aa)=4.

 

Grazie.

 

Supporto di diversi DB nelle applicazioni VB NET

$
0
0
Sto cercando di predisporre le routine di libreria, che si interfacciano al database, al supporto di più DB in modo che, sulla base di un parametro che arriva via lista (DBServerType), non sia necessario duplicare le routine. Per quanto riguarda connessioni e transazioni faccio arrivare via lista una mia struttura che al suo interno contiene le connessioni/transazioni per tutti i DB interessati e, come si vede dal codice, applico quelle richieste sulla base del parametro DBServerType.

Per le variabili interne (command e parameters) pensavo potesse funzionare qualcosa del tipo:

Select Case DBServerType
    Case DBServer.MSAccess, DBServer.OLEDB
        Dim cmd As OleDbCommand
        Dim prmGroupID As New OleDbParameter
    Case DBServer.SQLServer
        Dim cmd As SqlClient.SqlCommand
        Dim prmGroupID As New SqlClient.SqlParameter
End Select

Ma ottengo solo errori di sintassi nel resto della routine. L'intento sarebbe quello di utilizzare le stesse variabili e non un cmdo per oleedb e cmds per sql server.


Vorrei evitare di usare gli overload perchè a volte le routine che ho già scritto hanno già delle versioni in overload e vorrei non avere la proliferazione degli overload.

Gli overload li userei sicuramente per le routine:

- SetOleParameter
- ExecuteNonQuery (+ altre ExecuteReader e ExecuteScalar)

Avete qualche suggerimento per superare questo ostacolo?

Sotto un esempio di routine.

Grazie

 

Public Shared Sub PutEmployeeAbsenceGroup(ByVal DBServerType As IntegerByVal DBconn As DBConnectionsType, _
                                          
ByVal ProgName As StringByVal FormName As String, _
                                          
ByVal ErrLanguage As StringByVal InsertMode As Boolean, _
                                          
ByVal LenDescription As Integer, _
                                          
ByVal AbsenceGroupInfo As EmployeeAbsenceGroupType, _
                                          
ByRef DBTransaction As DBTransactionType, ByRef OperationDone As Boolean)
   
Dim strSQL As String, RoutineName As String = "PutEmployeeAbsenceGroup"
   Dim NumRowsAffected As Integer   Dim cmd As New OleDbCommand   Dim rst As OleDbDataReader = Nothing   Dim prmGroupID As New OleDbParameter, prmDescription As New OleDbParameter'
' Inserimento/aggiornamento gruppo assenze
'

    
If InsertMode Then
        strSQL = "INSERT INTO GruppiAssenzeCollaboratori " & _
                 
"            (GroupID,Description) " & _
                 
"VALUES      (?,?);"
    Else
        strSQL = "UPDATE GruppiAssenzeCollaboratori " & _
                 
"SET    Description=? " & _
                 
"WHERE  GroupID=?;"
    End If

    With AbsenceGroupInfo
        
Call SetOleParameter(cmd, ParameterDirection.Input, "prmGroupID", .ID, False, prmGroupID)
        
Call SetOleParameter(cmd, ParameterDirection.Input, "prmDescription", LenDescription, .Description, False, _
                             prmDescription)
    
End With

    With cmd
        
Select Case DBServerType
            
Case DBServer.MSAccess, DBServer.OLEDB
                .Connection = DBconn.OleDbconn
                .Transaction = DBTransaction.OleDbTransaction
        
End Select
        .CommandText = strSQL
        .CommandType = CommandType.Text
        
If InsertMode Then .Parameters.Add(prmGroupID)
        .Parameters.Add(prmDescription)
        
If Not InsertMode Then .Parameters.Add(prmGroupID)
    
End With
    Call ExecuteNonQuery(DBServerType, ProgName, FormName, RoutineName, ErrLanguage, True, DBTransaction, cmd, _
                         NumRowsAffected, OperationDone)
    
If Not OperationDone Then Exit Sub

    cmd = Nothing
End
 Sub

 


Barra delle applicazioni di W7 e programma esterno

$
0
0

Salve, ho il seguente problema (S.O. W7):

Da un form MDI via menu lancio un file che sarà eseguito con la sua applicazione proprietaria, con il seguente comando:

Dim S As Object

Set S = CreateObject("Shell.Application")

S.ShellExecute (App.Path & "\Files\Prova 2.lin")

 Funziona e il file si avvia ma, per ragioni che non dipendono da me ma dallo sviluppatore della applicazione originale, la finestra che si apre termina oltre la barra delle applicazioni di Windows 7, che la va a coprire proprio dove vi sono alcuni tasti di comando.

 Allora con il seguente codice posso attivare e disattivare la barra:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Const SW_HIDE = 0

Private Const SW_SHOWNORMAL = 1

Dim WinHwnd As Long

 Public Sub HideW7Bar()

    WinHwnd = FindWindow("Shell_TrayWnd", "")

    ShowWindow WinHwnd, SW_HIDE

End Sub

 Public Sub ShowW7Bar()

    ShowWindow WinHwnd, SW_SHOWNORMAL

End Sub

 Il punto è che la disattivo, lancio il file e poi vorrei aspettare che chiudo il programma esterno prima di riattivarla.

Quindi il codice:

 

Dim S As Object

Set S = CreateObject("Shell.Application")

Call HideW7Bar

S.ShellExecute (App.Path & "\Files\Prova 2.lin")

Call ShowW7Bar

non va bene perché la barra si riattiva immediatamente.

 

Ho trovato routine per attendere che una applicazione esterna termini prima di proseguire il programma VB, ma non con il comando ShellExecute.

Per ora ho risolto mettendo la routine di riattivazione della barra nell’evento frmMDI.Click, praticamente quando il programma esterno termina basta un click del mouse per far riapparire la barra delle applicazioni di W7, ma non mi pare proprio una soluzione elegante. Qualche suggerimento?

Grazie

Filippo

NameSpace LOG

$
0
0
Volevo implementare una procedura di LOG all'interno di una mia applicazione


Ho visto che esiste un nameSpace LOG all'interno di VbNet, ma non capisco come utilizzarlo. Qualcuno ha avuto modo di lavorarci?

TTS (Text To Speech)

$
0
0

Buongiorno a tutti.

Premessa: sto lavorando a un'applicazione in grado di "leggere ad alta voce" del testo (da un controllo di word processing e anche da un normale controllo RichTextBox). Per il momento l'applicazione è in Windows Forms, non perché voglia rimanere su questa piattaforma, ma perché sto sperimentando il Desktop Bridge per fare delle conversioni per lo Store di Microsoft. Windows Forms mi permette di tenere bassa la complessità del progetto e di concentrarmi solo sugli aspetti fondamentali. Successivamente rifarò il tutto in WPF e per la UWP.

Finora sono riuscito a fare tutto: a far parlare il PC, a regolare il volume e la velocità del parlato. Per questo compito ho utilizzato il namespace System.Speech.Synthesis e con queste istruzioni ho raccolto l'elenco delle voci installate sulla mia istanza di Windows 10:

 

Codice:
Dim objvoices As ReadOnlyCollection(Of InstalledVoice) = ss.GetInstalledVoices(Globalization.CultureInfo.CurrentCulture)
Dim objvoiceInformation As VoiceInfo = objvoices(0).VoiceInfo
For Each tmpvoice As InstalledVoice In objvoices
objvoiceInformation = tmpvoice.VoiceInfo
cmbInstalled.Items.Add(objvoiceInformation.Name.ToString)
Next

 

Problema: attualmente l'unica voce installata (in italiano) è "Microsoft Elsa Desktop". Funziona discretamente, ma per chi sente è un po' troppo "voce di computer", cioè è veramente poco naturale.  Per fare un confronto, Cortana è avanti anni luce rispetto a questa voce sintetizzata.    Ho provato a cercare qualcosa in rete e ho trovato qualcosa (https://msdn.microsoft.com/en-us/library/vs/alm/hh361572(v=office.14).aspx), ma i link di download non funzionano.  Su Google ho trovato un download funzionante con varie lingue, non solo quella inglese(https://www.microsoft.com/en-us/download/details.aspx?id=27226), ho provato a installare la voce italiana, ma non è successo niente, nel mio elenco ottengo sempre e solo Elsa. Tra l'altro, siccome vorrei distribuire il programma sullo Store, ho la necessità di fornire un modo semplice per installare le voci sui PC di destinazione o almeno di fornire le giuste indicazioni agli utenti in modo che sappiano dove andare a prenderle e come installarle, soprattutto nella propria lingua e/o in tutte le lingue desiderate.

In sostanza, come si può risolvere il problema? C'è qualche tecnica recente che mi potete consigliare? Per esempio sarebbe possibile "pilotare" Cortana in modo da utilizzare la sua voce per la lettura?

In seguito avrò la necessità di risolvere il problema del riconoscimento vocale (anche questo nella lingua scelta dall'utente) e forse la soluzione è sempre in Cortana, ma non riesco a trovare documentazione adeguata...

Grazie in anticipo e buona domenica!

DataGridView, BindingSource e polling

$
0
0
Buongiorno a tutti,



Ho una datagrid che visualizza dei dati che si modificano con una frequenza elevata. I dati sono raggruppati in una collection di tipo datagriview. Per snellire il codice e renderlo più veloce, vorrei  usare un bindingsource associato alla list(of)  collegato al datasource della grid. IN questo modo devo dire che tutto funziona bene anche con una frequenza di polling per il recupero dato molto elevata. L'unico problema, e qui la richiesta di aiuto, e l'interattività con l'utente. In questa modalità perdo la selezione cella e perdo anche lo scorrimento orizzontale e verticale. Evete siggerimenti in merito o magari altri metodi per realzzarlo ?  G.

oggetto MonthCalendar: FontSize non possibile

$
0
0
Devo visualizzare un calendario mensile sul Form dal quale l'utente selezionerà una data.
Ho quindi utilizzato l'oggetto MonthCalendar ma ho scoperto con mio grande stupore che non è possibile definire il font dell'oggetto ma che viene definito dal sistema operativo, e la stessa Microsoft suggerisce di utilizzare oggetti di terze parti.

Domanda: quale oggetto di terze parti potrei utilizzare ??

Grazie
Sergio
Viewing all 2212 articles
Browse latest View live