none
"La referencia a un miembro no compartido requiere una referencia de objeto" ¿Como referenciar un objeto en un Form diferente? RRS feed

  • Pregunta

  • Hola, mi duda es como hacer para llamar un RichTextBox (RichTextBox1) que tengo en un UserControl para poder manipular la propiedad Text desde un cuadro de dialogo.

    Imports System.Windows.Forms
    Imports VMC.BVMEnviroment
    
    Public Class Spam_Selector
    
        Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
            Me.DialogResult = System.Windows.Forms.DialogResult.OK
            Me.Close()
        End Sub
    
        Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
            Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
            Me.Close()
        End Sub
    
        Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
            RichTextBox1.Text += Environment.NewLine + "REM ---------------------------------"
        End Sub
    End Class

    Ese es el código del cuadro de dialogo.

    El error ocurre aquí

    Imports System.Windows.Forms
    Imports VMC.BVMEnviroment
    ...
        Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
            RichTextBox1.Text += Environment.NewLine + "REM ---------------------------------"
        End Sub
    ...
    Alguna sugerencia?

    PD: Mi UserControl está importado, es el de la linea 2


    lunes, 23 de abril de 2018 17:42

Respuestas

  • > "LorenzoZippilli2002" escribió:
    >
    > El error ocurre aquí
    >
    > Imports System.Windows.Forms
    > Imports VMC.BVMEnviroment
    > ...
    >    Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
    >        RichTextBox1.Text += Environment.NewLine + "REM ---------------------------------"
    >    End Sub
    >
    > Alguna sugerencia?
    >
    > PD: Mi UserControl está importado, es el de la linea 2

    Hola:

    No puedes hacer uso de cualquier control, sea o no un control RichTextBox, que se encuentra incluido en un UserControl, en un Form, o en cualquier otro contenedor, por mucho que importes su espacio de nombres, si previamente no tienes una referencia válida a ese UserControl, Form, o el contenedor donde se encuentre incluido el control RichTextBox.

    Vamos a suponer que la propiedad Modifiers de ese control RichTextBox tiene el valor Friend o Public, porque si tiene el valor Private, entonces mejor será que te olvides de asignarle directamente el valor a su propiedad Text.

    Si en tu formulario tienes insertada una instancia de ese control UserControl, establecerías el valor a la propiedad Text de su control RichTextBox ejecutando lo siguiente:

        Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
    
            Me.UserControl1.RichTextBox1.Text += Environment.NewLine + "REM ---------------------------------"
    
        End Sub
    

    Se comprende que UserControl1 es el nombre que el UserControl tiene establecido en tu formulario.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    lunes, 23 de abril de 2018 21:14
    Moderador