Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    vb.net recuperare la posizione in una textbox e datagridview

    Buongiorno,

    volevo porvi un quesito.

    Ho una textbox che contiene il nome di diversi file separati dal ;

    es.

    file1; file2; file3;

    se io clicco col tasto sx del mouse sulla text box, non ho nessun problema ad evidenziare solo il nome su cui mi sono posizionata.

    se io clicco col tasto dx, vorrei fare apparire un contextMenu che mi permetta di aprire il file. Il mio problema è che se io clicco col tasto dx sulla textbox, non so dove recuperare la posizione del mouse, per sapere quale file voglio aprire!

    non so se mi sono spiegata... cmq nell'evento MouseDown, riesco a capire se ho selezionato il tasto dx così:

    codice:
    Private Sub TxtAll_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TxtAll.MouseDown
            If e.Button = Windows.Forms.MouseButtons.Right Then
                'e qui vorrei recuperare il nome del file selezionato
            End If
        End Sub
    ma txtall.SelectionStart è sempre 0, non mi dice dove sono con il mouse.

    Grazie per l'attenzione!

  2. #2
    Scusate,

    mi sono accorta, andando intanto avanti con la programmazione, che forse il problema è anche più esteso...

    infatti ho una datagridview, e volevo fare in modo che posizionandomi su una riga, cliccando con il tasto dx, comparisse un context menu con il quale poter gestire l'elemento selezionato, solo che anche in questo caso, non riesco a capire qual è l'elemento selezionato perchè se clicco col tasto dx mi compare solo il menu ma non mi si evidenzia nessuna riga sul datagridview.

    forse uso male il contextmenu? qcuno è in grado di darmi una dritta?

    grazie mille!

  3. #3
    scusate ma avendo cambiato focus del problema, ho trovato qcosa, lo scrivo si sa mai serva a qcun'altro


    per recuparare l'indice della textbox

    codice:
        Private Sub TxtAll_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TxtAll.MouseDown 
    If e.Button = Windows.Forms.MouseButtons.Right Then
                 Dim p As Point             
    p = New Point(e.X, e.Y)             
    TxtAll.SelectionStart = TxtAll.GetCharIndexFromPosition(p) 
              
             End If   
      End Sub

    per recuperare la riga della datagrid

    codice:
     Private Sub DG_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DG.MouseDown
    
              If e.Button = Windows.Forms.MouseButtons.Right And DG.Rows.Count > 0 Then          
        'Recupero l'index della riga in corrispondenza della posizione del puntatore  
               Dim rowindex As Integer = DG.HitTest(e.X, e.Y).RowIndex    
              DG.Rows(rowindex).Cells(0).Selected = True       
           
    endif

    grazie a tutti

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.