Form rotieren lassen!

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von miko1204.

    Form rotieren lassen!

    Hallo,
    ich möchte gerne eine Form rotieren lassen! Ich hab hier im Forum schon einen Beitrag gesehen
    der eine Picturebox rotieren lassen wollte, da wurde es mit einem Timer und mehreren Bildern
    gelöst doch dies kann ich janicht mit einer Form machen! Wie könnte ich das Bewerkstelligen??

    MFG

    Werewolve
    hätte einen sehr umständlichen Lösungsansatz dafür. Wie du bereits gesagt hast, hast du einen Thread gefunden, der beschreibt, wie man Pictureboxen rotieren lässt. Füll doch einfach die PictureBox mit einem Bild, bzw Screenshot deiner Form und lass die PictureBox rotieren. Nach einem definierten TimerInterval lässt du dann die PictureBox ausblenden und die Form real laden. Du musst natürlich eine Form als Hintergrund machen, die du mit den Farbeigenschaften Background = rot und TransparencyKey = rot und FormBorderStyle = none unsichtbar machst
    naja der lösungsvorschlag gefällt mir jetzt nicht so! Gibt es da nicht einen andere Möglichkeit! Und meinen Form ist runde vielleicht hilft das!


    Edit: HAb hier noch was gefunden! Weiß aber nicht wie das helfen könnte:

    VB.NET-Quellcode

    1. Visual Basic (Deklaration)Public Property Rotation As Rotation
    2. Visual Basic (Verwendung)Dim instance As BitmapImage
    3. Dim value As Rotation
    4. value = instance.Rotation
    5. instance.Rotation = value
    hallo werewolve,

    ist das nicht ein bischen ausserhalb dessen, was du leisten kannst ?
    sinnvoll wäre es, sich erst mit den basics zu beschäftigen.

    übrigens - warum suchst du nicht bei onkel google ?
    dein problem lässt sich leicht im englischen beschreiben.

    rotate form

    gruss

    mikeb69
    ich denke er meint mich damit. Ich denke er kommt nicht damit klar, dass ich gerade von Python auf VB umsteige.

    Die Lösung die ich dir geboten hab, wäre jetzt der Ansatz gewesen, wie ich das gelöst hätte, wenn mir ne andere Möglichkeit nicht in Sinn gekommen wäre.
    Ich check den code nicht so richtig, was hat das mit Rotation zutun da rotiert ja garnichts
    oder was muss ich da verändern das sich da was bewegt?

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.ComponentModel
    3. Imports System.Windows.Forms
    4. Imports System.Data
    5. Imports System.Configuration
    6. Imports System.Drawing
    7. Imports System.Drawing.Drawing2D
    8. Imports System.Drawing.Text
    9. Imports System.Globalization
    10. Imports System.Text
    11. Imports System.Collections
    12. Public Class MainClass
    13. Shared Sub Main()
    14. Dim myform As Form = New RotateForm()
    15. Application.Run(myform)
    16. End Sub
    17. End Class
    18. Public Class RotateForm
    19. Inherits System.Windows.Forms.Form
    20. #Region " Windows Form Designer generated code "
    21. Public Sub New()
    22. MyBase.New()
    23. 'This call is required by the Windows Form Designer.
    24. InitializeComponent()
    25. 'Add any initialization after the InitializeComponent() call
    26. End Sub
    27. 'Form overrides dispose to clean up the component list.
    28. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    29. If disposing Then
    30. If Not (components Is Nothing) Then
    31. components.Dispose()
    32. End If
    33. End If
    34. MyBase.Dispose(disposing)
    35. End Sub
    36. 'Required by the Windows Form Designer
    37. Private components As System.ComponentModel.IContainer
    38. 'NOTE: The following procedure is required by the Windows Form Designer
    39. 'It can be modified using the Windows Form Designer.
    40. 'Do not modify it using the code editor.
    41. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    42. '
    43. 'RotateForm
    44. '
    45. Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
    46. Me.ClientSize = New System.Drawing.Size(500, 500)
    47. Me.Name = "RotateForm"
    48. Me.Text = "RotateForm"
    49. End Sub
    50. #End Region
    51. Sub RotateForm_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
    52. Dim g As Graphics = e.Graphics
    53. Dim x As Integer = 250
    54. Dim y As Integer = 250
    55. Dim width As Integer = 250
    56. Dim height As Integer = 250
    57. Dim textWidth As Single = g.MeasureString("00", Me.Font).Width
    58. Dim length As Single = 230
    59. Dim textRect As RectangleF = New RectangleF(x + length, y - Me.Font.GetHeight(g) / 2, length, textWidth)
    60. Dim format As StringFormat = New StringFormat()
    61. format.Alignment = StringAlignment.Near
    62. format.LineAlignment = StringAlignment.Center
    63. Dim i As Integer
    64. For i = 0 To 360 Step 10
    65. Dim matrix As Matrix = New Matrix()
    66. matrix.RotateAt(i, New PointF(x, y))
    67. g.Transform = matrix
    68. g.DrawLine(Pens.Black, x, y, x + length, y)
    69. g.DrawString(i.ToString(), Me.Font, Brushes.Black, textRect, format)
    70. Next
    71. End Sub
    72. End Class
    hallo

    ich hab dir was geschrieben ist etwas hesslich aber funktioniert einwandfrei

    du brauchst

    2xButtons (Button1 und Button2)
    2x Timers (Timer1 und Timer2)

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Me.DoubleBuffered = True
    4. End Sub
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. Timer1.Start()
    7. Timer1.Interval = 50
    8. End Sub
    9. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    10. Me.Location = New Point(Me.Location.X + 10, Me.Location.Y)
    11. Timer1.Stop()
    12. Timer2.Start()
    13. Timer2.Interval = 50
    14. End Sub
    15. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    16. Me.Location = New Point(Me.Location.X - 10, Me.Location.Y)
    17. Timer2.Stop()
    18. Timer1.Start()
    19. End Sub
    20. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    21. Timer1.Stop()
    22. Timer2.Stop()
    23. End Sub
    24. End Class


    GR
    Schäm dich nicht "Zu fragen", schäm dich "Nicht zu wissen". ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „miko1204“ ()