Drag & Drop Aktualisierung.. Hilfe ... bitte :(

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Drag & Drop Aktualisierung.. Hilfe ... bitte :(

    Hallo liebe Com,

    ich bin derzeit in den letzten Zügen meines Projekts und nachdem ich lange versucht habe die letzte unstimmigkeit zu beseitigen muss ich wohl oder übel zugeben: Ich brauche hilfe.

    Zu meinem Problem:

    Ich habe mehrere Zeiten , die durch das Ziehen eines Labels per Drag & Drop ausgewertet werden die anzahl der Zeiten ist variabel ebenso wie die anzahl der Teilnehmer ( Bsp. gebe ich 4 teilnehmer und 4 zeiten ein gibt es 4 teilnehmer mit jeweils 4 zeiten also gesammt 16 zeiten)

    Das funktioniert auch soweit alles super , nun möchte ich aber , dass wenn man nicht in der "richtigen" reihenfolge die zeiten in die Tb zieht der wert im nachhinein aktualisiert wird.

    (Also wenn ich bsp bei Teilnehmer 1 in der 3 Zeit eine 1:22 habe und dann im nachhinein eine 0:22 in die 2 zeit ziehe soll von der zweiten zur dritten zeit nur 1 min als abstand ausgegeben werden, momentan wird eine im nachhinein eingefügte zeit noch ignoriert)

    Ich weiß dass es eine Filewatcher funktion gibt allerdings habe ich versucht die einzufügen was allerdings nichts gebracht hat :S

    ich werde hier mal hoffentlich alles wichtige für dieses problem aus meinem code einfügen:

    Quellcode

    1. Public Sub TextBox6_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
    2. If e.Data.GetDataPresent(DataFormats.Text) Then
    3. Me.Text = e.Data.GetData(DataFormats.Text).ToString
    4. CType(sender, TextBox).AppendText(e.Data.GetData(DataFormats.Text, True))
    5. intZeit2 = 0
    6. intzeitMinuten = 0
    7. timer3.Enabled = True
    8. Try
    9. For j = 1 To Me.tt
    10. For i = 1 To Me.tz
    11. If Label1.Text <> "" And Label1.Text = Panel1.Controls("tbTest" & i).Text And labelnichtdoppelt = 1 Then
    12. welchesLabel = intzeit21
    13. Label1.Text = ""
    14. intZeit2 = intzeit21
    15. labelnichtdoppelt += 1
    16. End If
    17. If Label2.Text <> "" And Label2.Text = Panel1.Controls("tbTest" & i).Text And labelnichtdoppelt = 1 Then
    18. welchesLabel = intzeit22
    19. Label2.Text = ""
    20. intZeit2 = intzeit22
    21. labelnichtdoppelt += 1
    22. End If
    23. If Label3.Text <> "" And Label3.Text = Panel1.Controls("tbTest" & i).Text And labelnichtdoppelt = 1 Then
    24. intZeit2 = intzeit23
    25. Label3.Text = ""
    26. labelnichtdoppelt += 1
    27. welchesLabel = intzeit23
    28. End If
    29. If Label4.Text <> "" And Label4.Text = Panel1.Controls("tbTest" & i).Text And labelnichtdoppelt = 1 Then
    30. intZeit2 = intzeit24
    31. Label4.Text = ""
    32. welchesLabel = intzeit24
    33. labelnichtdoppelt += 1
    34. End If
    35. If Label5.Text <> "" And Label5.Text = Panel1.Controls("tbTest" & i).Text And labelnichtdoppelt = 1 Then
    36. Me.k = 0
    37. Label5.Text = ""
    38. intZeit2 = intzeit25
    39. labelnichtdoppelt += 1
    40. welchesLabel = intzeit25
    41. End If
    42. If Panel1.Controls("tbTest" & i).Text <> "" Then
    43. If Panel1.Controls("tbZweitereihe" & i).Text = "" Then
    44. If Panel1.Controls("tbRechnen" & i).Text = "" Then
    45. Panel1.Controls("tbRechnen" & i).Text = intZeit2
    46. End If
    47. If i <> 1 Then
    48. If Panel1.Controls("tbRechnen" & i).Text <> "" Then
    49. If IsNumeric(Panel1.Controls("tbRechnen" & i).Text) And IsNumeric(Panel1.Controls("tbRechnen" & i - 1).Text) Then
    50. intZeit2 = Panel1.Controls("tbRechnen" & i).Text - Panel1.Controls("tbRechnen" & i - 1).Text
    51. ElseIf IsNumeric(Panel1.Controls("tbRechnen" & i).Text) And IsNumeric(Panel1.Controls("tbRechnen" & i - 2).Text) Then
    52. 'Dim zeitberechnung1 As Date = CDate(FindForm.Controls("tbDrittereihe" & i).Text)
    53. 'Dim zeitberechnung2 As Date = CDate(FindForm.Controls("tbDrittereihe" & i - 1).Text)
    54. intZeit2 = Panel1.Controls("tbRechnen" & i).Text - Panel1.Controls("tbRechnen" & i - 2).Text
    55. 'stringzeit = Date.Compare(zeitberechnung1, zeitberechnung2)
    56. ElseIf IsNumeric(Panel1.Controls("tbRechnen" & i).Text) And IsNumeric(Panel1.Controls("tbRechnen" & i - 3).Text) Then
    57. intZeit2 = Panel1.Controls("tbRechnen" & i).Text - Panel1.Controls("tbRechnen" & i - 3).Text
    58. ElseIf IsNumeric(Panel1.Controls("tbRechnen" & i).Text) And IsNumeric(Panel1.Controls("tbRechnen" & i - 4).Text) Then
    59. intZeit2 = Panel1.Controls("tbRechnen" & i).Text - Panel1.Controls("tbRechnen" & i - 4).Text
    60. End If
    61. End If
    62. End If
    63. r = i
    64. 'Zeit in String umwandeln
    65. For l = 0 To 9999
    66. If intZeit2 >= 60 Then
    67. Me.intZeit2 = Me.intZeit2 - 60
    68. intzeitMinuten += 1
    69. End If
    70. If intzeitMinuten < 10 Then
    71. If intZeit < 10 Then
    72. stringzeit = "0" & intzeitMinuten & ":" & "0" & intZeit2
    73. Else
    74. stringzeit = "0" & intzeitMinuten & ":" & intZeit2
    75. End If
    76. Else
    77. If intZeit < 10 Then
    78. stringzeit = intzeitMinuten & ":" & "0" & intZeit2
    79. Else
    80. stringzeit = intzeitMinuten & ":" & intZeit2
    81. End If
    82. End If
    83. Next
    84. 'Zeit als String ausgeben
    85. Panel1.Controls("tbZweitereihe" & i).Text = stringzeit
    86. End If
    87. If Panel1.Controls("tbDrittereihe" & i).Text = "" Then
    88. datetime = startzeitt.AddSeconds(welchesLabel).ToLongTimeString
    89. Panel1.Controls("tbDrittereihe" & i).Text = datetime.ToLongTimeString
    90. End If
    91. End If
    92. Next
    93. Next
    94. labelnichtdoppelt = 1
    95. Catch ex As Exception
    96. For Each c As Control In Panel1.Controls
    97. If InStr(c.Name, "tbTest") > 0 Then
    98. End If
    99. Next
    100. End Try
    101. End If
    102. End Sub


    da muss nun irgendwo noch eine aktualisierung initialisiert werden, wie weiß ich nicht :(

    Würde mich über hilfe sehr freuen !

    mfg M-Jay
    @M-Jay:
    Mach mal ein sehr einfaches Beispiel, wie die Daten vorher aussehen können und wie sie danach aussehen sollen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ vb-paradise.de/user/10037-rodfromgermany/

    bsp

    tb1 bekommt den wert: 00:00
    tb2 bleibt erstmal leer

    tb3 bekommt den wert:00:20 (weil 20 sekunden mehr als vom letzten (in diesem fall tb1) eintrag)


    soweit so gut

    ich möchte nun folgenes erreichen

    tb1 bekommt den wert: 00:00
    tb2 bleibt erstmal leer

    tb3 bekommt den wert:00:20 (weil 20 sekunden mehr als vom letzten (in diesem fall tb1) eintrag)


    dann kommt in tb2 der wert: 00:10
    damit soll sich dann tb3 ändern in :00:10 weils nurnoch 10 sek vom letzten eintrag entfernt ist der in diesem fall aus tb2 kommt


    hoffe das ist verständlich ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „M-Jay“ ()

    M-Jay schrieb:

    hoffe das ist verständlich
    Nicht so recht.
    "00:00"
    ""
    "00:20"
    ==>
    "00:00"
    "00:10"
    "00:30"
    ???
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Und wo liegt das Problem?
    Unter welchen Bedingungen kann das
    und unter welchen Bedingungen darf das nicht
    einfach ersetzt werden :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    M-Jay schrieb:

    naja es soll halt ersetzt werden
    Ja dann tue es doch einfach.
    Wo ist das Problem?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!