Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB .NET] Random position?
Kaspersky
17.07.2009, 18:50
Hallo,
Ich möchte einen button in einer random position bewegen lassen.
Ich hatte mal einen kleinen 2 zeilen code dafür aber hab ihn nich mehr.
Kann mir da wer aushelfen?
Greetz :)
Müsste ungefähr so gehen (Pseudocode):
button.left=random(form.width);
button.top=random(form.height);
Ich hätte da eine Lösung die funktioniert ;) :cool:
Public Class Form1
Dim random As New System.Random
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Timer1.Interval = 700
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Location = New Point(random.Next(10, 800), random.Next(10, 800))
End Sub
End Class
viel Spaß damit :)
z0ND
Kaspersky
17.07.2009, 19:35
@zond ja so ähnlich hatte ich das auch mal gemacht.
Aber wo leg ich da die maximum breite/höhe an?
Die "800" sins nicht
Ich denke das sollte passen:
Public Class Form1
Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseMove
Button1.Left = (Rnd() * (Me.Width - Button1.Width)) + 1
Button1.Top = (Rnd() * (Me.Height - Button1.Height)) + 1
End Sub
End Class
Benötigt wird eine Form (Name egal) mit einem Button (Button1). Wenn du die Maus über den Button bewegst, dann wechselt der Button die Position.
deleted -schwachsinn- :D
enco's lösung ist korrekt ;)
Kaspersky
17.07.2009, 19:43
@enco
Jap das ist genau der code wie ich hatte, aber anscheinend nicht ganz, ich hatte das irgentwie angestellt das er nicht über die form hinaus geht.
Doch bei diesem code kann der button verschwinden...
@zond
Nein die size ist festgelegt.
das würde gehen mit eingrenzen
Dim random As New System.Random
Button1.Location = New Point(random.Next(10, Me.Size.Height - 50), random.Next(10, Me.Size.Width - 50))
Kaspersky
17.07.2009, 19:54
Naja okay manuell eingrenzen, bei encos code wäre dass dan so:
Button1.Left = (Rnd() * (Me.Width - 50 - Button1.Width)) + 1
Button1.Top = (Rnd() * (Me.Height - 50 - Button1.Height)) + 1klappt auch, muss man halt an die größe des steuerelements anpassen da nur die größe des steuerelements nicht ausreicht weil es bis zum letzten pixel ausnutzt und dann is das ding halt weg^^
Ich dachte ich hätte schon richtig eingegrenzt ^^
Es reicht wohl nicht nur den Button 'abzuziehen'. Schau halt wie es passt.
Kaspersky
17.07.2009, 20:06
Jap genau, wenn man nur den button "abzieht" kann er trotzdem noch so weit weg das man ihn nicht mehr sieht, er ist dann genau 1 pixel neben/über/unter der form.
Also muss man ihn einfach doppelt abziehn.
Danke für die hilfe =)
Greetz
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.