Tips
Tips
Se si apre un form MDI child come maximized si ha un problema nella visualizzazione della sua icona. Basta creare un progetto con una Form MDI container (IsMdiContainer=True), mettere un Menustrip ed inserire il seguente codice per l’apertura della form figlia Form2: Private Sub NewToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewToolStripMenuItem.Click
Dim f As New Form2
f.MdiParent = Me
f.WindowState = FormWindowState.Maximized
...
Dovendo fare in una stessa applicazione molte form di dialogo per l’immissione o visualizzazione di informazioni ho pensato di creare una form base (scheletro) che fosse impostata con le caratteristiche comuni (font, colore di sfodo) e con i pulsanti ok, applica, annulla. A questo punto tutte le form di dialogo ereditano da questa (invece che da System.Windows.Form.Form) e così si trovano automaticamente i pulsanti e tutto il resto. Per posizionare i pulsanti ho pensato di usare un TableLayoutPanel in modo che ridimensionando le form ereditate i pulsanti si spostino nel punto giusto. Però mi sono accorto che, in...
Quando una Form MDI contiene delle form figlie aperte in modalità Maximized si uno sfarfallio al cambio delle finestra attiva. Ciò succede quando si attiva la finestra da codice. Per evitare questo fastidioso comportamento si può come al solito ricorrere alle API Windows. A tal proposito ho preparato un modulo MDIUtil che crea un Extension method per aggiungere alla form MDIParent il metodo MyActivateMdiChild con cui si può richiedere di attivare una form child evitando il flickering. Il codice del modulo è il seguente: Imports System.Collections.Generic
...
Una Form MDI di default ha un bordo interno (che credo sia di tipo sunken), ovvero del tipo: Per rimuoverlo si può ricorrere alle API windows. A tal proposito ho preparato un modulo MDIUtil che crea un Extension method per aggiungere alla form MDIParent il metodo SetBevel con cui si può richiedere di mostrare o non mostrare il bordo. Il codice del modulo è il seguente: Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
...
Se elaborando documenti e proprietà su SharePoint (2007) vi capitasse un errore come questo: Microsoft.SharePoint.SPInvalidPropertyException: Date Times before 1/1/1970 are not supported. Allora il problema potrebbe essere quello capitato anche a me oggi. Il mio codice eseguiva l’upload di un documento su SharePoint e contestuale valorizzazione delle sue proprietà, il tutto tramite il metodo Add dell’oggetto SPFolder. Se fra le proprietà c’è una data allora come valore è bene passare quello ottenuto dalla funzione SPUtility.CreateISO8601DateTimeFromSystemDateTime, ovvero una stringa con la rappresentazione UTC della data (formato ISO8601, ovvero yyyy-mm-ddThh:mm:ssZ). Il codice corretto è il seguente....
Può capitare con Vista o Windows 7 che facendo doppio click da Esplora Risorse su un file di progetto o di solution di Visual Studio non succeda nulla. Ovvero non parta Visual Studio. Se capita, allora il motivo potrebbe essere la concomitanza di questi 2 fattori: 1) La UAC è attiva 2) Visual Studio è impostato per partire sempre As Administrator Se è così allora si può fare una delle 2 cose seguenti: - Togliere il flag “As Administrator” a Visual Studio, oppure - Metterlo a “Microsoft Visual Studio Version Selector” ...
Mi è capitato esattamente quanto descritto in questo post, ovvero ho aggiunto una service reference ad un progetto (Console), ho fatto tasto destro sul file app.config per richiamare l’editor della configurazione WCF, ma il menu contestuale “Edit WCF Configuration” non era disponibile:
Allora seguendo le indicazioni del post di cui sopra ho fatto click sul menu Tools|WCF Service Configuration Editor, in questo modo ho aperto l’editor, da qui ho aperto il file app.config (File|Open), l’ho chiuso ed il menu è finalmente comparso:
Quando si “stampa” una data bisogna fare attenzione al formato che si utilizza. Ad esempio io faccio ampio uso del formato italiano tramite il seguente codice: Dim dateAsString As String = Now.ToString("dd/MM/yyyy")
Purtroppo quel codice non fa esattamente quello che mi aspetto.
Infatti il carattere / ha un significato, ovvero è il separatore di sistema usato per le date. Ovvero, se nei miei settings regionali di sistema la data è scritta ad esempio così yyyy-MM-dd, allora quel ToString di cui sopra produce dd-MM-yyyy, ovvero mette il giorno,...
Se abbiamo compilato un eseguibile in modalità Any CPU e lo lanciamo su una macchina a 64bit questo verrà ovviamente eseguito a 64bit. Se però ci servisse poterlo avviare a 32bit possiamo sfruttare il tool CorFlags.exe. Basta avviare il prompt dei comandi di Visual Studio e poi digitare: corflags.exe /32bit+ filename.exe Per ripristinare il comportamento normale: corflags.exe /32bit- filename.exe [Fonte]
Piccola e semplice funzione in VB.NET per determinare se la macchina in cui l’applicazione in esecuzione è x86 o x64. 1: Function IsSys64Bit() As Boolean
2: Dim identifier As String = Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER")
3: If identifier.IndexOf("i86", StringComparison.InvariantCultureIgnoreCase) Then
4: Return False
5: Else
...
Full Tips Archive