



Salve sto cercando di fare in modo che in un programma in cui è presente un API Google che si interfaccia al calendario mi venga scritto ciò che desidero in un calendario specifico. Il programma di per se funziona ma scrive nel primo calendario.
Il codice interessato è questo:
Dim list As IList(Of CalendarListEntry) = service.CalendarList.List().Execute().Items() 'List of all the google calendars the user has
Dim EventRequest As ListRequest = service.Events.List(list("0").Id) 'Specifies which google calendar to perform the query
Dim CalendarEvent As New Data.Event
Il punto è che non posso cambiare il numero, perchè magari un altro utente non ha lo stesso ordine del mio calendario, vorrei fare in modo che i dati vengano scritti nel calendario chiamato per nome, ad esempio se il calendario si chiamasse "Casa", vorrei che i dati vengano scritti soltanto all'interno del calendario "Casa".
Ovviamente non posso scrivere:
Dim EventRequest As String = "Casa"
Questo perchè ciò andrebbe in conflitto con il resto del codice che riporto qui:
Private Function Authenticate() 'Function that gets authenticates with google servers
' Add the calendar specific scope to the scopes list.
scopes.Add(CalendarService.Scope.Calendar)
Dim credential As UserCredential
Using stream As New FileStream("InsertEvent.json", FileMode.Open, FileAccess.Read) ' utilizza il file delle credenziali scaricato da google com specificato nell’altra guida. Deve essere copiato nella stesa cartella dell’eseguibile oppure deve essere inserito un PathName
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets, scopes, "user", CancellationToken.None,
New FileDataStore("C:\InsertEvent")).Result
End Using
' Create the calendar service using an initializer instance
Dim initializer As New BaseClientService.Initializer()
initializer.HttpClientInitializer = credential
' initializer.ApplicationName = "VB.NET Calendar Sample"
initializer.ApplicationName = "InsertEvent" 'è il nome dell'applicazione registrata in Google
service = New CalendarService(initializer)
Return 0
End Function
Public Function AddCalendarEvent(ByVal Id As String, ByVal Data As String, ByVal Ora As String, ByVal Durata As String,
ByVal Titolo As String, ByVal Località As String, ByVal Descrizione As String) As Boolean
Try
Dim list As IList(Of CalendarListEntry) = service.CalendarList.List().Execute().Items() 'List of all the google calendars the user has
Dim EventRequest As ListRequest = service.Events.List(list("0").Id) 'Specifies which google calendar to perform the query
Dim CalendarEvent As New Data.Event
Dim StartDateTime As New Data.EventDateTime
Dim A As Date
Dim DataIni As String = ""
DataIni = Data & ""& Ora
' prepara data inizio
A = Convert.ToDateTime(DataIni)
StartDateTime.DateTime = A
' prepara data fine
Dim b As Date
b = A.AddHours(Durata)
Dim EndDateTime As New Data.EventDateTime
EndDateTime.DateTime = b
' assegna le proprietà
CalendarEvent.Start = StartDateTime
CalendarEvent.End = EndDateTime
CalendarEvent.Summary = Titolo
CalendarEvent.Location = Località
CalendarEvent.Description = Descrizione
CalendarEvent.Id = System.Guid.NewGuid.ToString 'se si vuole assegnare un iD automatico
CalendarEvent.Id = Id
'
Dim Request As New InsertRequest(service, CalendarEvent, EventRequest.CalendarId)
Request.CreateRequest()
Request.SendNotifications = True
Request.Execute()
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
Salve,
ho un paio di domande sulla gestione dei combobox dentro una datagridview.
Premesso che aggiungo una combobox ad una datagridview ma la colonna mi si aggiunge all'inizio come posso dirgli in che posizione va inserita tra le colonne?
Secondo quesito la combobox la preparo con dei valori presi da una tabella in modo che se devo compilare il campo ho un elenco pronto da cui selezionare, ma all'apertura della form io carico i dati della gridview prendendoli da una tabella, ma come faccio ad impostare il valore della combobox? come ho impostato io mi da sempre errore la colonna "banca" non appartiene alla tabella.
Di seguito codice utilizzato, ringrazio anticipatamente.
Buongiorno, come mai, sebbene abbia messo in ogni form WindowState=Maximized, i form si rimpiccioliscono lo stesso sullo schermo?
Grazie per risposte
Salve a tutti, ho bisogno di un vostro aiuto in merito alla gestione dei file XML.
Ho creato un programmino per la lettura dei file XML . La FORM si compone di:
- Un controllo DataGridView per la visualizzazione del contenuto del file XML sotto forma di dati.
- Un controllo TextBox per la visualizzazione del codice XML Schema associato al file XML.
- Due controlli Button: 1) Un pulsante per la lettura del file XML e l'inserimento dei dati nel dataset e la visualizzazione dei dati nel controllo DataGridView; 2) Un secondo pulsante per l'estrazione dello schema dal dataset e la relativa visualizzazione nel controllo TextBox mediante una classe StringWriter.
- Inserito un DataSet (name = AuthorsDataSet)
Il file authors.xml che devo aprire ha il seguente contenuto (ne riporto uno stralcio…. )
…………………………………………….
Questo il codice utilizzato:
PublicClassForm1
PrivateSub ReadXmlButton_Click(sender AsObject, e AsEventArgs) Handles ReadXmlButton.Click
Dim filePath AsString = "C:\XML\authors.XML"
AuthorsDataSet.ReadXml(filePath)
DataGridView1.DataSource = AuthorsDataSet
DataGridView1.DataMember = "Richiesta"
EndSub
PrivateSub ShowSchemaButton_Click(sender AsObject, e AsEventArgs) Handles ShowSchemaButton.Click
Dim swXML AsNew System.IO.StringWriter()
AuthorsDataSet.WriteXmlSchema(swXML)
TextBox12.Text = swXML.ToString
EndSub
EndClass
Il mio problema è che non riesco ad avere nella datagridvie il contenuto integrale del file XML. Se modifico il codice precedente in : DataGridView1.DataMember = "Testata"
la DataGridView mi riporta correttamente le 5 colonne :
Il mio problema è popolare la DataGridView con tutti i campi del file XML.
Dove sbaglio? Mi aiutate a capire e correggere il codice?
Grazie come sempre!!!!
Fabio
Salve,
sto provando a utilizzare una classe per la convalida di controlli TextBox.
Nel modulo di classe all'evento TextBox_KeyPress ho inserito una serie di filtri sul KeyAscii, una cosa normale.
Nel Form utilizzo:
DIM MyTextBox as clsTextBox
e poi SET MyTextBox as New clsTextBox
e quindi assegno a MyTextBox.TextBox il controllo del form.
Funziona tutto se il controllo è singolo, ma NON FUNZIONA se il controllo è membro di una Array di controlli.
Praticamente
SET MyTextBox.TextBox = Text1 FUNZIONA
SET MyTextBox.TextBox = Text2(3) NON FUNZIONA e mi dà errore.
Sbaglio qualcosa o è proprio un limite di VB6 che non permette l'assegnazione?
Grazie
Filippo
Ciao a tutti. uso VB 2008 con framework 3.5 e ho un problema con l'ordinamento di un treeview.
Nell'applicazione riempio un treeview prelevando i dati da un DB quindi creo l'albero con l'ordinamento voluto tramite la sintassi ORDER BY delle query.
Poi modifico, via codice, la proprietà text di alcuni nodi (tutti allo stesso LEVEL) e quindi è necessario riordinare l'albero per mantenere la visualizzazione corretta per l'utente.
Quindi al termine delle modifiche ho messo il comando TreeView.Sort e ho ottenuto il risultato sperato.
Questo comando però ha il "difetto" di lavorare su tutto l'albero e io ho alcuni sottonodi (di quelli modificati) che non seguono la regola dell'ordinamento alfabetico ma sono ordinati per date decrescenti (e questo lo ottengo correttamente al primo riempimento da DB).
Quindi ho pensato che dopo il Sort potevo eliminare e poi far ricreare tutti e soli i nodi (con testo di tipo data) che erano aperti in precedenza. Il problema è che l'albero ora è in modalità SORT e quindi quando li ricreo me li ordina ancora.
Ho pensato allora di eliminare il Sort dell'albero e ho trovato su MSDN
https://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.sorted(v=vs.110).aspx
che esiste la proprietà SORTED (sia Get che Set) quindi la metto a FALSE e provo a vedere se funziona. Tale proprietà è definita
Come si fa ad usare questa proprietà?
Grazie
Stefano
Buongiorno a tutti,
sono un vecchio appassionato del Vb6 (ero iscritto ai tempi alla mailing list), poi ho un po' abbandonato la cosa anche se in ufficio sono diventato il mago delle macro di Excel, mi sono dato per hobby alla programmazione di Arduino e ora da qualche giorno ho ripreso in mano il visual basic e sto iniziando a giocare con il vb.net
Magari mi sto perdendo io in un bicchiere d'acqua ma ho un paio di perplessità sull'uso dell'IDE (Visual Studio 2015) e sulla creazione degli eseguibili, ho cercato su internet e nel forum ma non sono rimasto soddisfatto per cui vi chiedo una mano:
1) una volta che ho creato un progetto non capisco come fare "Salva con nome" dell'intero progetto e risalvarlo in un'altra cartella creando ad esempio una versione 2
2) una volta con il vb6 mi creavo il mio bravo eseguibile che era un unico file ed ero a posto, ora mi crea un file .application, un file setup.exe ed una sfilza di file nella cartella bin. Ma se io volessi prendere ed eseguire su un altro pc cosa mi devo portare dietro?
Grazie mille
Lorenzo
Buongiorno, avendo problemi nel sincronizzare un insieme conteso e maneggiato da due thread differenti, vorrei 'disaccoppiarlo'. Non so però bene come fare. Mi spiego, un thread mi manutiene una lista sulla base di eventi di rete. Questa lista viene interrogata da un altro thread che quindi può eseguire delle operazioni, ad esempio, di enumerazione.
Ora, se durante l'enumerazione, il primo thread modifica l'insieme ovviamente ho delle gran eccezioni. Ho provato ad usare il SyncLock ma col risultato che a volte l'applicazione si blocca per un tempo indefinito. Evidentemente non ho fatto un buon lavoro con i SyncLock...
Qual è la via per disaccoppiare questo insieme? Mi spiego, il primo thread accende degli eventi per notificare al secondo che un elemento è stato aggiunto o tolto o modificato. Quindi 'allunga' la sua mano all'interno del gestore dell'evento. Analogamente, il secondo thread chiama delle funzioni che enumerano l'insieme.
Come si può fare per disaccoppiare l'insieme tra i due thread in modo da non incorrere in conflitti? Può essere valido inserire nel gestore dell'evento che aggiunge un oggetto all'insieme, un parte di codice che aggiunge un oggetto ad una lista locale al secondo thread anziché fare che il secondo thread usi la medesima lista? Ma se l'aggiunta viene fatta nel gestore dell'evento scatenato dal primo thread, non è come se fosse il primo thread ad aggiungere l'oggetto nella lista locale del secondo?
Mah, non so se mi spiego....scusate.
Grazie.
Scuola | Classe | Libro | Sezione |
Palladio | 1 | Geografia | A |
Palladio | 1 | Geografia | B |
Palladio | 1 | Geografia | C |
Palladio | 1 | Storia | B |
Palladio | 1 | Storia | E |
Scuola | Classe | Libro | Sezione |
Palladio | 1 | Geografia | A B C |
Palladio | 1 | Storia | B E |