Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Visual Studio 2010 come avere al centro del monitor i file

    Gent.mi,

    gentilmente gradirei risolvere un problema con la Vostra gradita esperienza in Visual Studio 2010.
    Apro regolarmente file in qualsiasi formato e francamente non trovo simpatico che ad ogni apertura non risulta fisso sul monitor bensì, ad ogni clik del pulsante o si apre a destra o a sinistra e raramente al centro considerando che potrebbe funzionare sia con monitor da 23" che a 19".

    Dim a, b As Single

    a = (Screen.PrimaryScreen.Bounds.Width - Me.Width) / 2
    b = (Screen.PrimaryScreen.Bounds.Height - Me.Height) / 2
    Me.Location = New Point(a,b)
    Process.Start(MyApplication.Info.DirectoryPath & "\nome del file")
    Me.WindowState = FormWindowState.Normal

    Gentilmente se potete suggerire ed eventualmente correggere il codice e gradirei che si aprisse sempre al centro del monitor.

    Anticipatamente ringrazio e fiducioso di un Vostro gradito riscontro, cordialmente saluto.

    Domenico.

  2. #2
    Qual codice non serve, c'è la proprietà del form StartPosition = CenterScreen.

    Ciao
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma lui vuole che sia centrato il form dell'applicazione lanciata con Process.Start (ad esempio, il Notepad)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Gent.mi,

    ringrazio della disponibilità. In effetti il form l'ho impostando in "StatPosition>CenterScreen" e risulta al centro ciò che i vari file si aprono disordinatamente benchè ho inserito i parametri per il calcolo.

    Senz'altro vi è un errore che mi sfugge o dovrebbe essere inserito qualche altro parametro. che ignoro.

    Auguro che mi possiate aiutare e fiducioso, saluto.

    Domenico.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quando dici "i vari file" cosa intendi di preciso?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Ok, non avevo capito bene il quesito. Girando un po' su internet ho trovato svariate soluzioni, la più semplice è questa:
    codice:
        <Runtime.InteropServices.DllImport("User32.dll")> _
        Public Shared Function SetWindowPos(ByVal hwnd As IntPtr, ByVal hWndInsertAfter As Int32,
            ByVal x As Int32, ByVal y As Int32, ByVal cx As Int32, ByVal cy As Int32,
            ByVal wFlags As Int32) As Int32
        End Function
    
        Const HWND_NOTOPMOST As Int32 = -2
        Const SWP_SHOWWINDOW As Int32 = &H40
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim ret As Process = Process.Start("C:\Users\Fabio Turrin\Desktop\forum.txt")
            ret.WaitForInputIdle(1000)
    
            SetWindowPos(ret.MainWindowHandle, HWND_NOTOPMOST, 0, 0, 500, 300, SWP_SHOWWINDOW)
        End Sub
    La funzione Process.Start fornisce delle informazioni sul processo avviato, in particolare la proprietà MainWindowHandle restituisce l'handle della finestra aperta.
    Per gestire le proprietà di una finestra tramite handle è necessario appoggiarsi alle API di Windows, il modo più semplice è usare la funzione SetWindowPos. In alternativa c'è la API chiamata SetWindowPlacement, che sa fare molte più cose ma richiede molto più codice per essere implementata.
    Chi non cerca trova.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ovviamente ci vuole altro codice per fare in modo che la

    SetWindowPos

    posizioni la finestra al centro.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Gent.mi, Tas e Oregon,

    non ho parola come ringraziare per la disponibilità e pazienza. Ho eseguito diverse prove
    e noto un piccolo miglioramento e sono sicuro che continuo a sbagliare.

    Chiedo una gentilezza e mi scuso se approfitto della Vostra gentilezza se posso inviare
    il progettino affinchè possiate consigliare e suggerire, tempo permettendo, ciò che
    dovrei fare.

    E' da parecchio che sono dietro con risultati deludenti.

    Anticipatamente ringrazio e fiducioso della Vostra cortesia e del Vostro gradito aiuto,
    cordialmente saluto.

    Domenico.

  9. #9
    Gen.mo Tas,

    mi scuso se nuovamente sono a chiedere suggerimento sul codice che mi hai suggerito.

    Completato l'inserimento, mi appare che ad "End Function" un errore che dev'essere
    preceduto regolarmente da un "Function".

    L'ho inserito all'inizio "Function" e mi dice che è previsto un identificatore se gentilmente mi suggerisci cosa dovrei aggiungere.

    Ringrazio e fiducioso, saluto.

    Domenico.

  10. #10
    Il codice riportato nel precedente post dovrebbe funzionare senza alcuna modifica, sicuro di averlo ricopiato identico?

    P.S. il tono dei tuoi messaggi è sicuramente educato e formale, ma a mio avviso poco si addice con lo stile confidenziale e informale che è prassi diffusa in questo forum. Confesso di provare una certa difficoltà a risponderti nello stesso tono, spero non ti dispiaccia
    Chi non cerca trova.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.