none
ProgressBar sotto TextBox WinForm RRS feed

Risposte

  • Immagino tu voglia che la progressbar appaia sotto la textbox trasparente.

    Putroppo nè la textbox di base nè la progresbar possono essere trasparenti. A questo link trovi un esempio in C# di un textbox trasparente http://www.codeproject.com/KB/edit/TransparentTextBox.aspx

    mercoledì 11 agosto 2010 16:19
    Moderatore
  • Ciao Gabriele,

    come giustamente indica Massimola TextBox non supporta la proprietà Trasparent.

    Puoi, però, aggiungerla con due righe di programma:

     

    Public Class Form1
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     Dim myTextBox As New TextBoxTrasparent(TextBox1)
    
     TextBox1.Text = "Pippo1"
    
     End Sub
    
     Public Class TextBoxTrasparent
    
     Inherits TextBox
    
    
    
     Public Sub New(ByVal textbox As TextBox)
    
     MyBase.New()
    
    
    
     SetStyle(ControlStyles.UserPaint, True)
    
     SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    
    
    
     Me.BackColor = Color.Transparent
    
     End Sub
    
    End Class
    
    

    Ciao

    Renato Marzaro

     

    ciao,

    Ho provato il tuo codice ma niente

    Ciao Gabriele,

    non funziona perchè nel tuo primo post parlavi di textBox ora di RichtexBox ... che è differente ;-)

     

    Ciao

    Renato Marzaro

     


    venerdì 13 agosto 2010 20:25
  • Ciao Gabriele,

    come giustamente indica Massimola TextBox non supporta la proprietà Trasparent.

    Puoi, però, aggiungerla con due righe di programma:

     

    Public Class Form1
       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myTextBox As New TextBoxTrasparent(TextBox1)
        TextBox1.Text = "Pippo1"
      End Sub
     Public Class TextBoxTrasparent
      Inherits TextBox
    
      Public Sub New(ByVal textbox As TextBox)
        MyBase.New()
    
        SetStyle(ControlStyles.UserPaint, True)
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    
        Me.BackColor = Color.Transparent
      End Sub
    End Class
    

    Ciao

    Renato Marzaro

     

    mercoledì 11 agosto 2010 19:16
  • Ciao Gabriele97,

    You wrote on 12/08/2010 :

    e da dove li posso scaricare i sorgenti?

    all'indirizzo che ti ha dato Massimo?

    http://www.codeproject.com/KB/edit/TransparentTextBox.aspx

    pigi su "Browse Code":
    http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=8831

    e trovi tutto quello che ti serve.

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    giovedì 12 agosto 2010 07:46
  • ho trovato su internet questo codice

    Public Class RichEdit50
      Inherits RichTextBox
      Declare Auto Function LoadLibrary Lib "kernel32.dll" (ByVal lpFileName _
      As String) As IntPtr
      Private Const WS_EX_TRANSPARENT As Int32 = &H20I
      Public Sub New()
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
      End Sub
      Protected Overloads Overrides ReadOnly Property CreateParams() As _
      CreateParams
        Get
          Dim prams As CreateParams = MyBase.CreateParams
          If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
            If BackColor = Color.Transparent Then
              prams.ExStyle = prams.ExStyle Or WS_EX_TRANSPARENT
            End If
            prams.ClassName = "RICHEDIT50W"
          End If
          Return prams
        End Get
      End Property
    End Class
    
    e funziona! riesco ad inserire il colore trasparente ... e riesco anche a vedere la progressbar che c'è sotto! l'unico problema è che devo aggionare la ricktextbox se no il testo non si vede

    giovedì 12 agosto 2010 07:55

Tutte le risposte

  • salve,

    come faccio ad inserire un controllo ProgressBar sotto un TextBox?


    Ciao,

    se non e cio' che richiedevi mi scuso in anticipo, doversti prima inserire la

    progressbar al fondo del form e successivamente il textbox, nel caso poi devi

    impostare esempio la proprieta' dock del textbox su fill.

    Ciao e spero di aver capito la tua richiesta.

    mercoledì 11 agosto 2010 13:18
  • ma io voglio che la progressbar si veda sotto il textbox
    mercoledì 11 agosto 2010 13:40
  • ma io voglio che la progressbar si veda sotto il textbox


    Ciao,

    prova a modificare la proprieta' dock della prograssbar , vedi esempio

    http://msdn.microsoft.com/it-it/library/system.windows.forms.control.dock(v=VS.80).aspx

    http://msdn.microsoft.com/it-it/library/system.windows.forms.progressbar_properties(v=VS.80).aspx

    Ciao.

    mercoledì 11 agosto 2010 14:42
  • ancora niente!
    mercoledì 11 agosto 2010 15:13
  • Immagino tu voglia che la progressbar appaia sotto la textbox trasparente.

    Putroppo nè la textbox di base nè la progresbar possono essere trasparenti. A questo link trovi un esempio in C# di un textbox trasparente http://www.codeproject.com/KB/edit/TransparentTextBox.aspx

    mercoledì 11 agosto 2010 16:19
    Moderatore
  • visto che il C# è uguale al VB.Net, ci dovrebbe essere un modo anche in Visual Basic .Net
    mercoledì 11 agosto 2010 16:32
  • Uguale no (sintassi differente e altre piccolezze e non), diciamo che lavora con le stesse classi del framework, quindi puoi provare a convertire il codice in VB.NET e dovrebbe funzionare.

    Attenzione perchè nell'articolo si fa riferimento, se non sbaglio, ad una classe Win32 che è stata realizzata dall'autore e che incapsula chiamate a P/Invoke come la SendMessage.

    mercoledì 11 agosto 2010 17:25
    Moderatore
  • e come posso fare per avere questa classe realizzata dall'autore?
    mercoledì 11 agosto 2010 17:57
  • Mi sa che devi trovare un anima pia che te la converta.

    mercoledì 11 agosto 2010 18:05
    Moderatore
  • Ciao Gabriele,

    come giustamente indica Massimola TextBox non supporta la proprietà Trasparent.

    Puoi, però, aggiungerla con due righe di programma:

     

    Public Class Form1
       Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myTextBox As New TextBoxTrasparent(TextBox1)
        TextBox1.Text = "Pippo1"
      End Sub
     Public Class TextBoxTrasparent
      Inherits TextBox
    
      Public Sub New(ByVal textbox As TextBox)
        MyBase.New()
    
        SetStyle(ControlStyles.UserPaint, True)
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    
        Me.BackColor = Color.Transparent
      End Sub
    End Class
    

    Ciao

    Renato Marzaro

     

    mercoledì 11 agosto 2010 19:16
  • Ciao Gabriele97,

    You wrote on 11/08/2010 :

    e come posso fare per avere questa classe realizzata dall'autore?

    scaricati i sorgenti da CodeProject, compilali e usali da VB.Net se la licenza è compatibile con quello che vuoi fare tu, che ti frega di convertirli?

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    giovedì 12 agosto 2010 03:49
  • Ciao Gabriele,

    come giustamente indica Massimola TextBox non supporta la proprietà Trasparent.

    Puoi, però, aggiungerla con due righe di programma:

     

    Public Class Form1
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim myTextBox As New TextBoxTrasparent(TextBox1)
      TextBox1.Text = "Pippo1"
     End Sub
     Public Class TextBoxTrasparent
     Inherits TextBox
    
     Public Sub New(ByVal textbox As TextBox)
      MyBase.New()
    
      SetStyle(ControlStyles.UserPaint, True)
      SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    
      Me.BackColor = Color.Transparent
     End Sub
    End Class
    

    Ciao

    Renato Marzaro

     

    ciao,

    Ho provato il tuo codice ma niente

    giovedì 12 agosto 2010 07:13
  • Ciao Gabriele97,

    You wrote on 11/08/2010 :

    e come posso fare per avere questa classe realizzata dall'autore?

    scaricati i sorgenti da CodeProject, compilali e usali da VB.Net se la licenza è compatibile con quello che vuoi fare tu, che ti frega di convertirli?

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    e da dove li posso scaricare i sorgenti?
    giovedì 12 agosto 2010 07:13
  • Ciao Gabriele97,

    You wrote on 12/08/2010 :

    e da dove li posso scaricare i sorgenti?

    all'indirizzo che ti ha dato Massimo?

    http://www.codeproject.com/KB/edit/TransparentTextBox.aspx

    pigi su "Browse Code":
    http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=8831

    e trovi tutto quello che ti serve.

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    giovedì 12 agosto 2010 07:46
  • ho trovato su internet questo codice

    Public Class RichEdit50
      Inherits RichTextBox
      Declare Auto Function LoadLibrary Lib "kernel32.dll" (ByVal lpFileName _
      As String) As IntPtr
      Private Const WS_EX_TRANSPARENT As Int32 = &H20I
      Public Sub New()
        SetStyle(ControlStyles.SupportsTransparentBackColor, True)
      End Sub
      Protected Overloads Overrides ReadOnly Property CreateParams() As _
      CreateParams
        Get
          Dim prams As CreateParams = MyBase.CreateParams
          If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
            If BackColor = Color.Transparent Then
              prams.ExStyle = prams.ExStyle Or WS_EX_TRANSPARENT
            End If
            prams.ClassName = "RICHEDIT50W"
          End If
          Return prams
        End Get
      End Property
    End Class
    
    e funziona! riesco ad inserire il colore trasparente ... e riesco anche a vedere la progressbar che c'è sotto! l'unico problema è che devo aggionare la ricktextbox se no il testo non si vede

    giovedì 12 agosto 2010 07:55
  • Ciao Gabriele,

    come giustamente indica Massimola TextBox non supporta la proprietà Trasparent.

    Puoi, però, aggiungerla con due righe di programma:

     

    Public Class Form1
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     Dim myTextBox As New TextBoxTrasparent(TextBox1)
    
     TextBox1.Text = "Pippo1"
    
     End Sub
    
     Public Class TextBoxTrasparent
    
     Inherits TextBox
    
    
    
     Public Sub New(ByVal textbox As TextBox)
    
     MyBase.New()
    
    
    
     SetStyle(ControlStyles.UserPaint, True)
    
     SetStyle(ControlStyles.SupportsTransparentBackColor, True)
    
    
    
     Me.BackColor = Color.Transparent
    
     End Sub
    
    End Class
    
    

    Ciao

    Renato Marzaro

     

    ciao,

    Ho provato il tuo codice ma niente

    Ciao Gabriele,

    non funziona perchè nel tuo primo post parlavi di textBox ora di RichtexBox ... che è differente ;-)

     

    Ciao

    Renato Marzaro

     


    venerdì 13 agosto 2010 20:25
  • Ciao Renato, grazie per il tuo completamento.

    Per Gabriele quest'ultimo post puo essere utile per ulteriori domande. Specificare il problema con tutti i suoi aspetti rende le risposte più precise e più sul argomento, cosi si evitano discusioni inutili che appesantiscono il post e lo fanno meno leggibile ai confronti di un nuovo utente.

    Più dati su come fare una domanda vincente si trovano qui.

    Colgo l'occasione per ringraziarvi a tutti per la contribuzione.

    Cordiali Saluti,

    Daniel.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    lunedì 16 agosto 2010 07:36