obtener foco sobre un formulario -
alberto-moyano - 26-05-2023
Hola colisteros, no encuentro que hago mal en el siguiente caso. Tengo un formulario (con un editor) que puedo instanciar tantas veces como lo necesite, la cuestión es que cuando quiero guardar cambios en cualquiera de los formularios abiertos, no lo obtengo y solo guarda los cambios en el primero, no entiendo si mi error es de lógica o de código, el código que desarrollé es el siguiente.
Gracias por cualquier comentario
Código:
GAMBAS
' Evento GotFocus para cada formulario
guardarComo
(activeForm,
True) File.
Save(activeForm.
Dialog.
Path, activeForm.
TextEditor.
Text)
formulario.
Dialog.
Title = "Guardar como..." formulario.
Dialog.
Filter = ["*.tex",
"Archivos LaTeX",
"*.adoc",
"Archivos Asciidoc",
"*.md",
"Archivos Markdown"]
' Proceso cancelado por el usuario
Message.
Info("El archivo no tiene un nombre válido.")
File.
Save(formulario.
Dialog.
Path, formulario.
TextEditor.
Text) ' Actualizar el título del formulario con la nueva ubicación
formulario.
Title = formulario.
Dialog.
Path ' Otras acciones a resolver
y el código que utilizo para abrir las diferentes instancias y guardarlas en una lista es
GAMBAS
Dialog.
Title = "Escoger archivo" Dialog.
Filter = ["*.tex",
"Archivos LaTeX",
"*.adoc",
"Archivos Asciidoc",
"*.md",
"Archivos Markdown"]
' Proceso cancelado por el usuario
Message.
Info("El archivo no tiene un nombre válido.")
newForm.TextEditor.Text = cadena
newForm.TextEditor.SetFocus
newForm.Show
' Añadir el formulario a la matriz de formularios abiertos
formulariosAbiertos.Add(newForm)
' Otras acciones según sea necesario
RE: obtener foco sobre un formulario -
tincho - 26-05-2023
Hola Alberto, mira no se como creas la instancia de cada formulario pero hice este ejemplo simple que hace algo parecido a lo que describiste.
EL caso es que cuando creo nuevos formularios copias de editor no funciona si no le asigno un tag y un nombre diferente a cada uno, tal vez sea eso lo que te pasa a vos.
por ejemplo:
GAMBAS
frm
= New FEditor
(Panel2
) .Tag = k
RE: obtener foco sobre un formulario -
alberto-moyano - 26-05-2023
Gracias Tincho, justo estoy leyendo en la wiki y los tiros vienen por donde lo planteas, el editor no se instancia junto con cada formulario abierto (así lo estoy entendiendo).
Este es el código para la apertura de cada formulario nuevo
GAMBAS
Dim nuevoFormulario
As New FormMAESTRO
' Crea una nueva instancia del formulario
nuevoFormulario.Show() ' Muestra el nuevo formulario