Могу ли я получить доступ к элементам управления формами из библиотеки классов VB .NET
Я использую библиотеку классов в vb 2010 для создания пользовательского элемента управления textbox.
я пытаюсь добавить список компонентов управления, которые находятся в основной форме
к свойству текстового поля ,
когда я добавляю новое текстовое поле (мое пользовательское текстовое поле) в форму мне нужен класс, чтобы получить компонент формы like (AxComms, Labels, ... etc) и иметь дело с этим компонентом из моего класса (my custom textbox),
например, получить его имя, как я попытался ниже "CXComm = Comms.Name" перед запуском приложения
как раз тогда, когда я опускаю пользовательское текстовое поле в форму.
Я трезубец код ниже на sub new но "
Application.OpenForms.Item(0)"просто работайте и получайте открытые формы, когда приложение запущено.
и так далее я не могу получить доступ к компонентам управления формами
Что я уже пробовал:
Imports System.Windows.Forms Imports System.IO Imports System.ComponentModel Imports System.Drawing Imports CXSERVERCOMMUNICATIONSCONTROLLib Imports System.Drawing.Drawing2D Public Class Fit_TextBox Inherits System.Windows.Forms.TextBox Public Comms As New AxCXSERVERCOMMUNICATIONSCONTROLLib.AxComms Dim CommsInForm As AxCXSERVERCOMMUNICATIONSCONTROLLib.AxComms Dim curColor As Color Dim lastData As Single Dim MaxValue As Decimal Dim MinValue As Decimal Dim FactorVal As Decimal = 1 Dim mainToolTip As String Dim txtval As String Dim FormName As String = "frmMain" Dim pnlName As String = "Panel1" Dim CXComm As String = "AxComms1" Dim tagname As String = "Tag" Dim plcName As String = "PLC" Dim ErrorProvider1 As New System.Windows.Forms.ErrorProvider Public x As TextBox Dim Error_Bit As Boolean = False Dim frm As Form Dim toolTip1 As New ToolTip() Dim lbl As Label Dim txt As TextBox Dim pnl, pnlC As Panel Dim Highlighter1 As New DevComponents.DotNetBar.Validator.Highlighter Public Sub New() '******************** Get Project Form and Comms Control Component frm = Application.OpenForms.Item(0) For Each c As Control In frm.Controls If InStr(c.Name, "AxComms1") Then Comms = c CXComm = Comms.Name End If Next End Sub ' ============================ Property ======================== Property Comms_In_Form As AxCXSERVERCOMMUNICATIONSCONTROLLib.AxComms Get 'Comms.Name Return CommsInForm End Get Set(value As AxCXSERVERCOMMUNICATIONSCONTROLLib.AxComms) CommsInForm = value End Set End Property Property CX_Comms As String Get 'Comms.Name Return CXComm End Get Set(value As String) CXComm = value End Set End Property ' ================================== Events ============== Private Sub Class1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown Dim err As Boolean = False If (Me.Text = "") Then GoTo lblErr If e.KeyValue = 27 Then Me.Refresh() Me.Text = lastData pnl.Focus() Exit Sub End If If e.KeyValue = 13 Then ' ***************** Check if numeric value If Not IsNumeric(Me.Text) Then ErrorProvider1.SetError(Me, "Not Numeric Number") HighLighter_Sub(True) err = True GoTo lblErr End If ' ***************** Check minimum and maximum value If Max_Value <> 0 Or Min_Value <> 0 Then If Me.Text < Min_Value Then ErrorProvider1.SetError(Me, "Exceeds Min Limit '" & MinValue & "'") HighLighter_Sub(True) err = True GoTo lblErr End If If Me.Text > Max_Value Then ErrorProvider1.SetError(Me, "Exceeds Max Limit '" & Max_Value & "'") HighLighter_Sub(True) err = True GoTo lblErr End If End If ' ***************** Write data to PLC frm.Comms.Write("CJ1M", tagname, Me.Text * Factor) lastData = Me.Text pnl.Focus() End If lblErr: If Not err Then toolTip1.SetToolTip(Me, mainToolTip) HighLighter_Sub(False) ErrorProvider1.SetError(Me, "") Else Error_Bit = True End If End Sub
OriginalGriff
Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли.
И на данный момент это не имеет большого смысла без контекста, который у вас есть, а у нас нет!
Возможно, если вы попытаетесь объяснить более подробно, что вы делаете и какие проблемы это вызывает у вас, это поможет?
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.