Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


DataGridView

Postades av 2009-09-18 21:50:35 - Claes Benjaminsson, i forum vb.net, Tråden har 3 Kommentarer och lästs av 1184 personer

Jag har en fråga angående datagridview där jag har följande kod:

 
Private Sub dgvSAM_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgvSAM.KeyDown
        MDIParent1.Cursor = System.Windows.Forms.Cursors.WaitCursor
        If e.KeyCode = Keys.Enter Then
            ExpTFA = Me.dgvSAM.Item(0, Me.dgvSAM.CurrentRow.Index).Value
            ExpLVV = Me.dgvSAM.Item(9, Me.dgvSAM.CurrentRow.Index).Value
            frmUppdrag.MdiParent = MDIParent1
            frmUppdrag.Show()
        End If
        MDIParent1.Cursor = System.Windows.Forms.Cursors.Default
    End Sub


Denna kod fungerar utmärkt men det är en "kosmetisk" egenhet som jag inte gillar nämligen att när jag trycker enter så hoppar fokus ner en rad, jag vill att fokus ska vara kvar på samma rad som jag tryckte enter. Går detta att ställa in med en egenskap? Jag är tacksam för lite tips!


Svara

Sv: DataGridView

Postades av 2009-09-21 14:39:53 - Yaser Mosavi

Kan du inte bara flytta på vald cell till där den skall vara? Gör det i slutet av funktionen?

Eller kanske cellen flyttar sig ner efter funktionen, kan du då inte flytta cellen ett snäpp över där den skall hamna till slut?


Svara

Sv: DataGridView

Postades av 2009-09-21 19:34:10 - Andreas Hillqvist

Det är väldigt enkelt:

Private Sub dgvSAM_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgvSAM.KeyDown
        MDIParent1.Cursor = System.Windows.Forms.Cursors.WaitCursor
        If e.KeyCode = Keys.Enter Then
            ExpTFA = Me.dgvSAM.Item(0, Me.dgvSAM.CurrentRow.Index).Value
            ExpLVV = Me.dgvSAM.Item(9, Me.dgvSAM.CurrentRow.Index).Value
            frmUppdrag.MdiParent = MDIParent1
            frmUppdrag.Show()

            e.SuppressKeyPress = True
        End If
        MDIParent1.Cursor = System.Windows.Forms.Cursors.Default
    End Sub


Om du vill kunna öppna flera rader samtidigt så skulle jag rekommendera att du i frmUppdrag överlagrade Show metoden med en egen:
    Private ExpTFA As Object
    Private ExpLVV As Object

    Public Overloads Sub Show(ByVal MdiParent As System.Windows.Forms.Form, ByVal ExpTFA As Object, ByVal ExpLVV As Object)
        MDIParent1.Cursor = System.Windows.Forms.Cursors.WaitCursor
        Me.ExpTFA = ExpTFA
        Me.ExpLVV = ExpLVV
        Me.MdiParent = MDIParent1
        Me.Show()
        MDIParent1.Cursor = System.Windows.Forms.Cursors.Default
    End Sub


För att öppna en ny instans skriver du istället:
    Private Sub dgvSAM_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgvSAM.KeyDown
        If e.KeyCode = Keys.Enter Then
            Dim f As New frmUppdrag
            f.Show(Me.MdiParent, dgvSAM.CurrentRow.Cells(0).Value, dgvSAM.CurrentRow.Cells(9).Value)
            e.SuppressKeyPress = True
        End If
    End Sub


Nackdelen är nu att du kan öppna ett uppdrag flera gånger.

För att lösa det måste du hålla reda på om det finns några fönster öppna sedan tidigare.
Ett enkelt sätt att göra det är att lägga till följande kod i frmUppdrag:
    Private Shared forms As New List(Of frmUppdrag)

    Private Sub frmUppdrag_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        forms.Add(Me)
    End Sub

    Private Sub frmUppdrag_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        forms.Remove(Me)

    End Sub

    Public Function GetForm(ByVal ExpTFA As Object, ByVal ExpLVV As Object) As frmUppdrag
        For Each f As frmUppdrag In forms
            If f.ExpTFA = ExpTFA AndAlso f.ExpLVV = ExpLVV Then
                Return f
            End If
        Next

        Return Nothing
    End Function


Och ändra koden som öppnar fönstret till:
    Private Sub dgvSAM_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgvSAM.KeyDown
        If e.KeyCode = Keys.Enter Then
            Dim ExpTFA As Object = dgvSAM.CurrentRow.Cells(0).Value
            Dim ExpLVV As Object = dgvSAM.CurrentRow.Cells(9).Value

            Dim f As frmUppdrag = frmUppdrag.GetForm(ExpTFA, ExpLVV)

            If f Is Nothing Then
                f = New frmUppdrag
                f.Show(Me.MdiParent, dgvSAM.CurrentRow.Cells(0).Value, dgvSAM.CurrentRow.Cells(9).Value)
            Else
                f.BringToFront()
            End If

            e.SuppressKeyPress = True
        End If
    End Sub


Svara

Sv:DataGridView

Postades av 2009-09-21 21:21:43 - Claes Benjaminsson

Lysande!! Detta löser mitt problem och dessutom lite extra tips!! Man tackar!

Mvh Claes


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 764
27 959
271 761
610
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies