首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Public Sub在子窗体中引用控件

Public Sub 在子窗体中引用控件是指在子窗体的代码中访问和操作主窗体中的控件。下面是具体的步骤:

  1. 在主窗体中,打开子窗体并创建一个Public Sub(公共子)以供外部访问。例如,在主窗体中创建一个名为"GetControlValue"的Public Sub,并将要访问的控件作为参数传递进去。代码示例:
代码语言:txt
复制
Public Sub GetControlValue(control As Control)
    ' 在此处编写需要执行的操作
    ' 可以使用control来引用传递进来的控件对象
    ' 例如,控制台输出控件的值
    Console.WriteLine(control.Text)
End Sub
  1. 在子窗体中,通过引用主窗体的实例对象,调用主窗体中的Public Sub,并将要引用的控件作为参数传递给它。代码示例:
代码语言:txt
复制
' 假设子窗体类名为ChildForm
Public Class ChildForm
    ' 引用主窗体的实例对象
    Private mainForm As MainForm

    ' 构造函数中传递主窗体对象
    Public Sub New(main As MainForm)
        InitializeComponent()
        mainForm = main
    End Sub

    ' 在子窗体的某个事件中调用主窗体的Public Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        mainForm.GetControlValue(Me.TextBox1) ' 传递要引用的控件对象
    End Sub
End Class

在上述代码中,通过将主窗体的实例对象传递给子窗体的构造函数,子窗体就可以通过该对象来调用主窗体中的Public Sub,并传递要引用的控件对象作为参数。这样就可以在子窗体中访问和操作主窗体中的控件了。

需要注意的是,以上示例仅为演示目的,具体的实现可能因具体情况而异。此外,不同的编程语言和开发框架可能有不同的实现方式,上述代码示例仅适用于VB.NET和Windows Forms开发。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel VBA编程

或者private语句声明的变量,作用域为声明变量的语句所在模块的所有过程,即该模块中所有的过程都可以使用它,这样的边框称为模块级变量 所有模块 一个模块的第一个过程之前使用public语句声明的变量..."subadd" sub过程的参数传递 VBA,过程的参数传递主要有两种形式:按引用传递和按值传递。...工作表中使用控件 添加表单控件 2....当在工程添加一个窗体后,就可以在窗体上自由的添加ActiveX控件,只要通过编写VBA代码为这些控件指定功能,就能利用这些控件与excel互动 工程添加一个用户窗体 设置属性,改变窗体的外观...在窗体添加和设置控件的功能 用代码操作自己设计的窗体 显示窗体 手动显示窗体 VBE窗口中选中窗体,依次执行【运行】——>【运行过程/窗体】命令,即可显示选中的窗体 程序中用代码显示窗体 sub

45.5K22

VB.NET数据库编程基础教程

使用,如果要引用OleDb前缀的类,必须导入System.Data.OleDb名称空间。...这表示用户可以使用ADO.NET绑定到传统的数据存储区(如存储Access或SQL Server表的数据),也可以绑定到从文件读取的、包含在其他控件的或存储阵列的数据结果。...完成上述步骤,在窗体的组件栏上将显示一个新的控件myDataSet1。此控件是myDataSet.xsd文件的一个引用,该文件也被添加到“解决方案资源管理器” 窗口中。 到此,准备工作结束。...加载窗体时,请使用窗体的Load事件过程,在数据网格控件填充数据。...1.实现对数据记录的浏览 完成对窗体的WinForm组件进行绑定后,实现对数据记录的浏览操作的关键就是要找到如何定位数据记录指针的方法。

4.6K30
  • Excel实战技巧63: 制作具有数据导航功能的用户窗体

    设计用户窗体 VBE,插入一个用户窗体,在其中添加文本框、按钮、标签等控件,如下图1所示。 ?...这个用户窗体控件及相应的名称如下: 用户窗体名称:ufEmployee 用户窗体标题:员工记录 在用户窗体,从上至下,从左至右,创建下面的控件: 员工ID文本框名称:tbxEEID Tag:Field0...,即处理数据和用户窗体控件。...你只需确保使用了正确的Tag属性,以免禁用了你不想禁用的控件。 现在,创建记录集,确保使用有用的信息来填充文本框。 无论用户窗体什么时候打开都会触发Initialize事件,此时适合创建记录集。...注意,如果你运行这个用户窗体出现错误,检查一个是否VBE设置了对Microsoft ActiveXData Objects 2.X Library的引用;或者是否Initialize事件对数据库的引用路径和名称有误

    3.1K20

    VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——VoiceRecorder控件使用方式.Net移动开发

    我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个VoiceRecorder控件和一个ImageButton控件窗体界面上 ?...图 2     3.Lacation属性       让控件显示合适的位置(100, 20),如图3; ?...图 5     2.GenerateMember属性       设置控件是否生成成员变量,将该属性设置为“True”,则该控件能被其他方法引用,如图6; ?...图 6     3.Modifiers属性       设置控件的可见性级别,默认设置为“Private”,其他的窗体则访问不到该控件,如图7; ?...图 7       若将Modifiers属性设置为“Public”,其他窗体则都可以访问该控件。     4.Name属性       设置控件名称为“voiceRecorder1”,如图8; ?

    70830

    .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现电子签名功能

    最前面的话:Smobiler是一个VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一、目标样式 ?...我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的“Smobiler Components”拖动一个Signature控件和一个ImageButton控件窗体界面上 ?...,将该属性设置为“0”,即全透明,如图2; c.Location属性 让控件显示合适的位置(22, 86),如图3; d.ResourceID属性 设置按钮图标名称,将该属性设置为“Sc1”,如图4;...,如图7; c.GenerateMember属性 设置控件是否生成成员变量,将该属性设置为“True”,则该控件能被其他方法引用,如图8; d.Modifiers属性 设置控件的可见性级别,默认设置为“...Private”,其他的窗体则访问不到该控件,如图7; 若将Modifiers属性设置为“Public”,其他窗体则都可以访问该控件

    1.2K20

    Excel编程周末速成班第21课:一个用户窗体示例

    注意:验证代码放置函数(而不是过程),因此它可以将值返回给调用程序:如果验证成功,则返回True;如果失败,则返回False。 验证过程的代码如清单21-3所示。...当然,单击“下一步”按钮时,这是必需的,单击“取消”或“完成”按钮时,这也是必需的。即使使用Hide方法隐藏了该窗体,它在下次显示时仍将所有数据保留在其控件。因此,需要清除控件。...清单21-4:ClearForm过程会清除窗体控件的所有数据 Public Sub ClearForm()    '清除窗体的所有数据    txtFirstName.Value = ""    txtLastName.Value...清单21-5:EnterDataInWorksheet过程 Public Sub EnterDataInWorksheet()    '从用户窗体复制数据到工作表的下一个空行     Dim r AsRange...    End If End Sub 步骤7:测试该工程 你可以通过VBA编辑器打开用户窗体时按F5来测试工程,还可以编写一个使用Show方法显示窗体的宏。

    6.1K10

    用VS2017进行移动开发(C#、VB.NET)——OfflineCameraButton控件,Smobiler移动开发

    GenerateMember属性 设置控件是否生成成员变量,将该属性设置为“True”,则该控件能被其他方法引用,如图10; 图 10 HorizontalAlignment属性 设置控件文本水平方向,...(100, 7),如图14; 图 14 Modifiers属性 设置控件的可见性级别,默认设置为“Private”,其他的窗体则访问不到该控件,如图15; 图 15 若将Modifiers属性设置为“Public...”,其他窗体则都可以访问该控件。...ResourceID属性 设置按钮图标名称,将该属性设置为“ca”,如图18; 图 18 Size属性 让控件大小为(15, 12),如图19; 图 19 SizeMode属性 设置如何显示图片,默认设置为...Smobiler窗体设计界面显示效果 二、          手机效果显示 备注:在手机客户端的设置可以找到你的离线图片。

    96230

    WPF|快速添加新手引导功能(支持MVVM)

    阅读导航 前言 案例一 案例二 案例三(本文介绍的方式) 如何使用控件如何开发的? 总结 1....并且提示框显示的位置还跟随目标控件窗体的位置灵活变换,不至于显示蒙版窗体之外,如下图所示: 当目标控件右侧空间足够显示引导提示框时,引导提示框就显示目标控件右侧;右侧空间不足时,则将引导提示框显示目标控件左侧...GuideControl:引导控件,用于目标控件无法获取到自己的窗体这种(即无法获取在窗体的位置),比如您开发的程序为第三方程序插件这种,上面的代码即是使用此引导控件实现的效果。...ListBox子项ListBoxItem内,而引导控件GuideControl可以ListBox的外层容器之上; GuideWindow 用于贴在目标控件所在的窗体上,GuideWindow 作为目标控件窗体窗体...,Show()目标控件窗体上,不能使用ShowDialog()的方式(为啥?

    2.5K10

    VB.NET 用循环判断文本框是否为空

    (右击U层——添加——新建项,弹出的对话框中继续选择即可添加) 2.新建的模块定义结构体Term,并定义Term类型的结构体数组。...End Structure '定义Term类型的结构体数组 Public arrayControl() As Term 3.以注册窗体为例,frmRegister窗体定义过程...注册窗体: Rdim()过程: Public Sub Rdim() '重新定义arrayControl()数组维数 ReDim Preserve arrayControl...,如果控件文本为空,则弹出messsgbox提示用户 For Each termControl In arrayControl '判断窗体控件是否为文本框或组合框...End If End Sub 6.CheckModel模块添加AllEmpty()函数,用来清空窗体的文本框、组合框的内容 '定义清空文本框或组合框的函数AllEmpty

    1.1K10

    vb添加GIF动态图片

    通过学习方法特别很多,而且并没有多麻烦: 一、最简单的方法 1、picturebox控件添加gif格式图片 首先、需要注册,注册方法:工程中选中“引用”→引用项目ActiveMovie...其次、'PictureBox控件显示GIF动画(图片),凡有句柄hwnd的窗体控件均可以;在窗体Form1上添加2个命令按钮Command1,Command2和1个图片框控件Picture1。...二、一个全新的处理方案:通过VB调用IE浏览器来实现GIF动画的播放,实际使用表明:效果甚好。...具体方法如下: 1.由于WebBrowser控件并不是VB的基本控件,因此使用控件之前必须先将其装入工具箱。...2.选取WebBrowser控件,添加到窗体的相应位置上。 3.设计相应代码,通过使用WebBrowser控件的Navigate方法播放GIF动画文件。

    1.2K10

    Excel编程周末速成班第18课:使用用户窗体创建自定义对话框

    Dim frm As New MyUserForm 2.如有必要,使用窗体引用来设置窗体及其控件的属性值。...Set frm = Nothing 提示:属于窗体的代码,Me关键字用于引用窗体(参阅上面的第5步)。由于该窗体引用窗体的代码是隐式的,因此你也可以使用属性和方法名称而无需使用Me限定符。...清单18-1:显示和测试用户窗体的过程 Public Sub TestUserForm() Dim s As String Dim frmAs New TestForm frm.Show...VBA编辑器提供了一个视觉设计工具,使你可以创建用户窗体的视觉界面。 通过VBA代码调用窗体的Show方法向用户显示窗体。 在窗体的代码,你可以使用Me关键字来引用窗体。...5.当你的程序使用窗体后,如何销毁该窗体

    11K30

    Excel实战技巧69: 运用类来简化验证用户输入的代码

    VBE,插入一个类模块,并将其命名为“NextVisible”,输入下面的代码: Public WithEvents cls_textbox As MSForms.TextBox Private Sub...使用集合 接着,应该由类模块控制的用户窗体控件必须与该类模块建立连接,并且应该在UserForm_Initialize事件创建连接。可以使用集合来存储这些连接。...通过添加类模块的新实例到集合,将用户窗体的每个控件连接到该类模块,使用控件的名字作为集合元素的键值。...ctl_col.Add New NextVisible, ctl.Name 类模块,文本框的事件变量为cls_textbox,因此需要使用Set语句将用户窗体的文本框连接到对象变量cls_textbox...通过数组的链接将控件连接到类模块的相应WithEvents变量。类模块的事件变量是cls_textbox。

    96130

    VB学习记录

    【格式】 private sub form_事件名(参数表) ...... end sub 【注意】 事件过程名窗体名只能使用form(如form_load),但在过程内对窗体进行引用时必须用到窗体名字...2.Tab键序 【说明】 当向窗体设置控件时,系统会自动按顺序给每个控件指定一个tab键序。tab键序也反映在控件的tabindex属性。...包含窗体控件 标准模块 只有代码,供各个窗体的事件过程来调用 类模块 包含代码和数据,可以看作一个控件,通过它可以制造一个对象,将它应用于窗体模块 2.3 数据类型 2.3.1基本数据类型 数据类型...(2)模块变量 又称模块级变量,主要包括窗体变量和标准模块变量。用private、dim声明。 (3)全局变量 又称全程变量,标准模块的声明部分声明,不能在窗体或过程声明。...4.5计时器控件 附: private 和 public dim 和 private sub 和 withevents byVal…as… variant和string 双精度和单精度 发布者:全栈程序员栈长

    2K21

    VB 窗体被PictureBox控件挡住无法显示

    1、问题描述     VB做机房收费系统的时候,用的MDI主窗体窗体上加了一个Picturebox控件,运行的时候,点了窗体,但是却没有出现,后来才发现,窗体被Picturebox控件给当在了后面...2、问题原因    MDI程序窗体实际位于MDIClient里,就是说,窗体的父窗体是MDIClient,而PictureBox和MDIClient属于同一级的    层次结构    ThunderMDIForm-MDIForm1...   --MDIClient    ---ThunderFormDC-Form1  窗体1    ---ThunderFormDC-Form2  窗体2    --ThunderPictureBoxDC...代码如下:     Private Sub AboutMenu_Click()         SetParent frmAbout.hWnd, frmMain.hWnd         frmAbout.Show...    End Sub     需要注意的一点是,frmMain窗体不可以是MDI窗体,要用一般的Form窗体,否则的话,当你运行的时候,它会提醒你——“实时错误426”,只允许一个MDI窗体

    1.4K20

    VBA小技巧:扩大缩小用户窗体

    有时候,使用VBA实现主要功能的同时,使用一些小技巧,可以起到锦上添花的效果。正如本文所介绍的技巧,可以通过一个标签控件,来扩大或者缩小用户窗体。效果如下图1所示。...图1 首先,按Alt+F11组合键打开VBE,单击菜单“插入——用户窗体”插入一个用户窗体,然后,在其中插入一个标签控件,设置其背景和字体颜色,将其命名为“lblView”,修改其Caption属性为“...图2 该用户窗体代码模块,输入下面的代码: Private Sub lblView_Click() With Me.lblView If .Caption = "全局视图"...此时,按F5键或者单击菜单“运行——运行过程/用户窗体”,然后单击该标签,就会出现如上图1所示的效果。...如果你在用户窗体中放置有文本框等控件,则可以编写相应的代码,放大用户窗体时,相应增加这些控件的尺寸,缩小时恢复原尺寸。 很简单的技巧,可以给你的界面增添不错的效果。

    1.3K10

    窗体UserForm——代码插入不定数量带事件的控件

    要实现点击选项按钮就激活工作表,显然需要插入的选项按钮具有某个事件,使用代码插入控件的时候,是可以同时让控件具有事件的: Private WithEvents ob As MSForms.OptionButton...但是UserForm_Initialize事件里添加控件,如果使用窗体的全局变量ob的话,ob只能指向最后一个控件,因为它仅仅是一个变量,不会同时指向多个控件。...而窗体的全局变量声明带WithEvents的时候又不能声明为数组控件,所以在窗体里没法插入不定数量,却又带有事件的控件。...说明(重要): 这里使用了Private来声明私有变量,故意不使用Public的目的是: 如果使用Public,是可以省略Property属性的,看起来是更方便了。...在窗体编辑代码: Option Explicit '声明COB数组,记录COB对象 Private cobs() As COB Private Sub UserForm_Initialize()

    1.1K20
    领券