在画面上,有一个文本框(PW)
还有一个自定义的数字小键盘如果按下 数字键后,文本框改变(类似触摸屏输入密码)为何在自定义控件中找不到parent这个属性?

解决方案 »

  1.   

     MsgBox UBound(Me.Parent.Controls)在自定义控件中,上边这句话提示未找到方法或数据成员!?这是为什么?
      

  2.   

    mlgb 诺大的网站,入门的问题没人会啊!
      

  3.   

    你的文本框式textbox控件不是?
    你说的"类似触摸屏输入密码",这个数字界面是键盘,还是你在屏幕上显示了一个窗体,上面是10个按钮?Me.Parent.Controls如果me是控件,那么me.parent就是控件的容器,一般是窗体.窗体的controls是一个集合,你也用msgbox me.parent.controls也没有指定是集合的哪一个元素,也没有指定集合的属性,系统不知道你要什么.如果你是显示了一个窗体,上面10个数字按钮,那么按这些按钮的时候你修改textbox的text属性就够了.比如:
    在form1上一个textbox输入密码,名字是PW,PW得到焦点后显示模式窗体(位置调整为PW的附近),名字EnterPW.EnterPW上面10个按钮式0-9,任意点击一个按钮CommandButton(最好是个控件数组了)都执行:
    form1.PW.text=form1.PW.text & Index'Index是CommandButton的Index
      

  4.   

    谢谢楼上的兄弟了现在de 问题是
    pw(textbox)控件在画面的form中而0-9的数字键是一个自定义控件现在无法在自定义控件中找到外层的PW控件!
      

  5.   

    public class usercontrol11
    private sub button1_click(......)
    for each thiscontrol as system.windows.forms.control in me.parent.controls
        if thiscontrol.gettype.name ="TextBox" then
            thiscontrol.text = "hello"
        end if
    next
    end ub
    end class
      

  6.   


    使用UserControl.ParentControls(或UserControl.Parent.Controls,当父容器是窗体时),而不是me.parent.controls
    示例:Dim obj As Object
    For Each obj In UserControl.ParentControls
        Debug.Print obj.Name, TypeName(obj)
    Next
      

  7.   


    还不如自定义控件提供一个借口,这个借口接收Textbox类型的值作为这个控件操作的目标.set usercontrol11.Textbox1=form1.PW这样在自定义控件就有了pw的引用,可以直接操作了