CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Saber Si Esta Asigando El Focus
Nebire:
yo anduve por el 2003 sólo de pasada me pasé rápido al 2005 y no recuerdo ahora si el 2003 incluía o no esos eventos, en cualquier caso es probable que los llamaran con otro nombre
Pero te recomiendo que te pases al 2005... incorporó nuevas mejoras, mayor compatibilidad con el VB6 (por si venías de allí) y corrección de rrores, además así no te quedarás descolgado... el 2008 está ya en el bote, cuanto antes se pille la 'onda' menos anticuado se queda tu software...
Knight Lore:
Hola Javis.
La propiedad Focused de cada control (esta en todos ya que pertenece a la clase base Control) te indica si el control posee focus o no.
Probala, porque no me acuerdo bien pero en algun momento la use y creo que me trajo algunos incovenientes, aunque segun el manual y lo que entiendo de tu pregunta deberia ser eso lo que buscas.
Javis:
Lo que encontre para solucionar el problema fue esto:
Public Overrides ReadOnly Property Focused() As Boolean
Get
End Get
End Property
mas o menos lo que alguno me habia dicho, con la diferencia que lo tuve que poner yo mismo en el codigo y que no estaba en los eventos de los controles :P
Un saludito y gracias a todos
Nebire:
Pero es una propiedad, no un evento. Eso significa que si deseas saber en un momento dado quien tiene el foco tendrías que recorrer toda la colección de controles para localizar a quien lo tiene. Por otro lado, no hay reacción, es decir si quieres lanzar un cóodigo al ganar el foco un objeto concreto, tendrás un problema de sincronización, suponiendo que lo captures con la propiedad, será a destiempo y consumiendo demasiados recursos...
Es raro que en el net.2003 olvidaran añadir dichos eventos... pásate cuando puedas al 2005... te lo recomiendo.
Knight Lore:
Habia entendido que solo necesitaba saber cual era el que tenia el foco, pero como bien dice Nebire puede ser un poco arduo si todo el tiempo se esta buscando en los controles. Quizas este codigo te de mejor resultado.
--- Código: Text ---Dim FocusedControl As Control Private Sub ControlGotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles textbox1.GotFocus, _combo1.GotFocus, dtpicker1.GotFocus 'agregar en el Handles todos los controles que se quieran monitorear FocusedControl = DirectCast(sender, Control)End Sub Private Sub HacerAlgoConControlFocused() If Not FocusedControl Is Nothing Then 'hacer aca lo que se desee con el control FocusedControl.Text = "focused" End IfEnd Sub
Navegación
[*] Página Anterior
Ir a la versión completa