CommandButtons

6 отговора 0 прегледа
#1

CommandButtons

Как да направя,така че като натисна на някой бутон всеки път да ми се появява нов?
Мерси предварително :)

Отговор
в отговор на miat #2

Re: CommandButtons

Нов какво?

Натискането на CommandButton предизвиква събитие _Click, и можеш да пишеш код, който да се изпълни.

Щирлиц
Отговор
в отговор на Щиpлиц #3

Re: CommandButtons

Колкото пъти натисна Командния бутон,толкова нови Командни бутони да ми се появяват във формата :))

Отговор
в отговор на 8ball1 #4

Re: CommandButtons

преименовай твоя на cmd и му сложи индекс 0
после в клик напиши тва

Load cmd(cmd.count) ' Load new cmd.
cmd(cmd.count).Left = cmd(1).Left ' Change position.
cmd(cmd.count).Top = cmd(i - 1).Top + 600
cmd(cmd.count).Caption = "cmd "& Str(i)
cmd(cmd.count).Visible = True ' Make visible.

вместо cmd.count можеш да си сложиш ръчен брояч за индекса на новия бутон, но т'ка според мен е по-добре

Отговор
в отговор на msafinx #5

Re: CommandButtons

Малка корекция, в твоя код си омешал някои работи, трябва да е така:
Load cmd(cmd.Count) ' Load new cmd.
cmd(cmd.Count - 1).Left = cmd(0).Left ' Change position.
cmd(cmd.Count - 1).Top = cmd(cmd.Count - 2).Top + 600
cmd(cmd.Count - 1).Caption = "cmd " & Str(cmd.Count - 1)
cmd(cmd.Count - 1).Visible = True ' Make visible.


Отговор
в отговор на naki #6

Re: CommandButtons

вярно прав си, а i-1 пък съвсем съм го забравил!
по лесно щеше да е да сложа x=cmd.count и да заместваме с него, хем да не бяга, хем да пишем по-малко :))

пс: Фед пак мачка!

Отговор
в отговор на saf #7

Re: CommandButtons

На кой турнир бие Федерер?

Отскоро ползвам VB 2005, и реших да пробвам същото как става в него...
Оказа се, че вече няма Index свойство и масиви от контроли, за разлика от VB6.

Ето кода, за който се интересува:

Public Class Form1

Dim num As Integer

Private Function FindControl( _
ByVal ControlName As String, _
ByVal CurrentControl As Control) As Control
For Each ctr As Control In CurrentControl.Controls
If ctr.Name = ControlName Then
Return ctr
Exit Function
End If
Next ctr
Return Me
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyStr As String
MyStr = "Button" & Format(num)
MessageBox.Show(MyStr)
Dim Button2 As New Button
' Set the location below the first TextBox
Button2.Left = DirectCast(FindControl(MyStr, Me), Button).Left
Button2.Top = DirectCast(FindControl(MyStr, Me), Button).Top + 30
Button2.Name = "Button" & Format(num + 1)
Button2.Text = "Button" & Format(num + 1)
' Add the TextBox to the form's Controls collection.
Me.Controls.Add(Button2)
AddHandler Button2.Click, AddressOf Button1_Click
num = num + 1
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
num = 1
End Sub
End Class



Отговор