当前位置:软件学习 > 其它软件 >>

请高人指点,VB.net动态对象创建与删除,并且该对象拥有很强的扩展性,我的代码,就是无法实现删除功能!

--------------------编程问答-------------------- “很强的扩展性”原来如此啊。 --------------------编程问答-------------------- 别在“xxxx元”这个地方打转转了,做点实际的项目。

除非你只是想靠这个在学校里弄点声誉。步入社会,这种纠结出来的“扩展性”其实什么也不是。扩展性体现在很大很深入的行业软件应用架构方面,而小的东西如果抠不出来就不要再抠了。

其实这种东西很简单,但是不适合学生去抠。带着真正实际的应用环境再来看这类问题,几分钟就可以解决。 --------------------编程问答-------------------- 专家说的是呀!但我不是学生,是个偷懒的人,工作上的事,能叫别人做尽量叫别人做,尽可能叫电脑去做,不愿意做我就托,呵呵呵,但这个事还是为了方便工作的,能帮我一下吗? --------------------编程问答-------------------- 楼主威武!!!
你做的东西是show个from2,然后from2给from1的Button2赋个新的Button(你很强大)
删除时候根据Button2的text判断添加进去的Button并将其删除

你每按一次Form2的Button1都只会给Form1的Button2换个新的Button(这句话咋这么别扭),
Form1.Button2.text始终记录的是最后一次换上去的值,
你靠这个判断,肯定只能删除最后一次添加的Button。

说话真别扭。。。。。。。。。 --------------------编程问答-------------------- 参考

    Dim ButtonCollection As New Collection
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ToolStripSplitButton1.Text = "删除"
        ToolStripSplitButton1.DisplayStyle = ToolStripItemDisplayStyle.Text
        Dim Button1 As New Button
        Button1.Text = "添加按钮"
        AddHandler Button1.Click, AddressOf AddButton
        Button1.Location = New Point(100, 100)
        Me.Controls.Add(Button1)

    End Sub
    Sub AddButton(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim NewButton As New Button
        Static Dim ButtonID As Integer = 0
        ButtonID += 1
        With NewButton
            .Location = New Point(10, ButtonID * 40) 'New Point(Form1.Label1.Text, Form1.Label2.Text)

            .Size = New System.Drawing.Size(79, 29)
            .TabIndex = 0
            .UseVisualStyleBackColor = True

            '.ContextMenuStrip = Form1.ContextMenuStrip2

            .Name = "Button" & ButtonID 'TextBox1.Text

            .Text = "Button" & ButtonID 'TextBox1.Text

            'AddHandler .MouseDown, AddressOf _MouseDown '绑定事件处理程序

            'AddHandler .MouseMove, AddressOf _MouseMove

            'AddHandler .Click, AddressOf _Click '绑定事件处理程序

        End With
        '将button丢进collection
        'ButtonCollection里面存放的是所有新建的button
        ButtonCollection.Add(NewButton, "Button" & ButtonID) '"Button" & ButtonID  是Key
        Me.Controls.Add(NewButton) '添加进from
        Dim DelToolStripButton As New ToolStripButton
        DelToolStripButton.Text = "删除 Button" & ButtonID
        DelToolStripButton.Tag = ButtonID '这里是标识
        ToolStripSplitButton1.DropDownItems.Add(DelToolStripButton)
        AddHandler DelToolStripButton.Click, AddressOf DelButton
    End Sub
    Sub DelButton(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim ButtonID As Integer
        ButtonID = sender.Tag '获取标识
        Dim NowButton As Button
        NowButton = ButtonCollection("Button" & ButtonID) '获取button
        RemoveHandler NowButton.Click, AddressOf DelButton '移除绑定事件
        Me.Controls.Remove(NowButton) '删除按键
        NowButton.Dispose() '销毁
        ButtonCollection.Remove("Button" & ButtonID) '将集合里面的对应项删除掉
        ToolStripSplitButton1.DropDownItems.Remove(sender) '移除 菜单里面的删除按钮
    End Sub

--------------------编程问答-------------------- 通过Control.Controls属性,可以遍历所有的control。
Lz可以这样,凡是动态添加的Control,都从自己的Control类继承,然后遍历Form.Controls集合去删除它。 --------------------编程问答-------------------- QQRN(笨QQ-馊主意提供者) 的代码很成功!我已经理解你的算法,下面的工作在你的算法基础上进行改进。
mooniscrazy(月色疯狂) 哥的建议不错,我最开始是这样想的,但是当按钮达到上百个,删除其中的一个是很困难的,(说白了是我不会写)!感谢大家的支持!不知大家用过华为T2000网管没有,按钮类似于T2000网管中的网元,网元(按钮)对象可移动,这个功能我已经实现,创建网元(按钮), Me.Controls.Add(Button1)就可以搞定,但是删除其中的一个按钮(网元)我就不会了。
sp1234(软件劫持和易做图:人傻钱多速来) 哥的话可以理解,但是很多事不能轻易放弃!因为大家做的事属科研工作,难度是很大的,在需求分析上,我定义为可行,就因一点困难就后退,你们口口声声的创业,也就是一句空话!



补充:企业软件 ,  中间件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,