formato de hora en un TextBox

21/02/2006 - 21:00 por amigo | Informe spam
hola a todos
tendo un dataset asociado a un textbox , como puedo hacer que me muestre
solo la hora?
se despide cordialmente,


amigo

Preguntas similare

Leer las respuestas

#1 amigo
24/02/2006 - 14:54 | Informe spam
Luis Miguel

De verdad te pasastes con la respuesta, aunque ya le di una solucion
bastante rudimentaria a mi formulario, voy a implementar esta que estoy
seguro me ayudará en otros formularios que tengo que hacer mas adelante,
ademas me gustó mucho tu solucion porque ocupa los recursos de ado.net como
debe ser.
Se despide dcordialment,

amigo



"Luis Miguel Blanco" escribió
en el mensaje news:
Hola amigo

Cuando indicas que tienes un Dataset asociado a un control Textbox,
entiendo
que estás utilizando DataBinding para realizar la asociación-enlace de
forma
automática, y que sea un gestor de enlace, el que se ocupe de la
navegación
por los registros.

Partiendo de la base anterior, lo que puedes hacer es lo siguiente:
después
de crear el enlace entre el Dataset y el Textbox mediante un objeto de
tipo
Binding, debes usar ese mismo objeto Binding para asociarle a su evento
Format un método que se ocupe de realizar el formateo; me explico:

La clase Binding dispone de un evento Format, que se produce cada vez que
la
fuente de datos cambia de registro, y necesita cargar con los valores del
nuevo registro, los controles con los que está enlazada. El momento en que
se
produce es justo antes de presentar el valor en el control enlazado.

Por defecto no se produce formateo alguno, por lo que en el caso de que
necesites que alguno de los controles tenga un formato especial, debes
escribir un método manipulador de dicho evento Format para el objeto de
enlace asociado al campo de la fuente de datos.

Puedes conectar dicho método manipulador con el objeto Binding de dos
formas: declarando el objeto Binding a nivel de clase, usando la palabra
clave WithEvents, o bien, si has declarado este objeto de forma local
dentro
de un método, mediante la instrucción AddHandler. Esta última forma es más
flexible, ya que te permitiría conectar/desconectar dinámicamente en
tiempo
de ejecución, el método manipulador de formato, cambiándolo durante el
flujo
de la aplicación si así lo necesitaras.

Te expongo a continuación un bloque de código con un ejemplo de cómo
podrías
aplicar esta técnica. Dicho ejemplo se basa en un formulario con 2
TextBox,
que enlazamos a un Dataset que obtiene los datos de la tabla Orders de la
base de datos Northwind:

'////////////////////////////////////////////////////////
Imports System.Data.SqlClient

Public Class Form1
Inherits System.Windows.Forms.Form

Private oDataSet As DataSet
Private oAdminEnlace As CurrencyManager

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim oConexion As New SqlConnection
oConexion.ConnectionString = "data source=localhost;persist
security
info=True;" & _
"initial catalog=Northwind;user id=sa;"

Dim oAdaptador As SqlDataAdapter = New SqlDataAdapter("SELECT *
FROM
Orders", oConexion)

oDataSet = New DataSet

oConexion.Open()
oAdaptador.Fill(oDataSet, "Orders")
oConexion.Close()

Dim oEnlace As Binding

oEnlace = New Binding("Text", oDataSet, "Orders.OrderID")
Me.txtOrderID.DataBindings.Add(oEnlace)
oEnlace = Nothing

oEnlace = New Binding("Text", oDataSet, "Orders.OrderDate")
' atención!!!! la siguiente línea constituye la clave de todo el
asunto
AddHandler oEnlace.Format, AddressOf FormatearHora
Me.txtOrderDate.DataBindings.Add(oEnlace)
oEnlace = Nothing

oAdminEnlace = Me.BindingContext(oDataSet, "Orders")
End Sub

Private Sub btnSiguiente_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnSiguiente.Click
oAdminEnlace.Position += 1
End Sub

Private Sub FormatearHora(ByVal sender As Object, ByVal e As
ConvertEventArgs)
Dim dtHora As DateTime = e.Value
e.Value = dtHora.ToString("H:mm:ss")
End Sub

End Class
'////////////////////////////////////////////////////////

Prueba este ejemplo, o adáptalo a tu código, a ver si de esta forma puedes
solucionar el problema.

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"amigo" wrote:

hola a todos
tendo un dataset asociado a un textbox , como puedo hacer que me muestre
solo la hora?
se despide cordialmente,


amigo



Respuesta Responder a este mensaje
#2 Luis Miguel Blanco
26/02/2006 - 16:15 | Informe spam
Hola amigo

Muchas gracias y no hay de qué, me alegra mucho de que te gustara el
planteamiento que te propuse para resolver el problema 8-)))

Un saludo muy cordial también para tí.

Luis Miguel Blanco
http://www.dotnetmania.com


"amigo" wrote:

Luis Miguel

De verdad te pasastes con la respuesta, aunque ya le di una solucion
bastante rudimentaria a mi formulario, voy a implementar esta que estoy
seguro me ayudará en otros formularios que tengo que hacer mas adelante,
ademas me gustó mucho tu solucion porque ocupa los recursos de ado.net como
debe ser.
Se despide dcordialment,

amigo



"Luis Miguel Blanco" escribió
en el mensaje news:
> Hola amigo
>
> Cuando indicas que tienes un Dataset asociado a un control Textbox,
> entiendo
> que estás utilizando DataBinding para realizar la asociación-enlace de
> forma
> automática, y que sea un gestor de enlace, el que se ocupe de la
> navegación
> por los registros.
>
> Partiendo de la base anterior, lo que puedes hacer es lo siguiente:
> después
> de crear el enlace entre el Dataset y el Textbox mediante un objeto de
> tipo
> Binding, debes usar ese mismo objeto Binding para asociarle a su evento
> Format un método que se ocupe de realizar el formateo; me explico:
>
> La clase Binding dispone de un evento Format, que se produce cada vez que
> la
> fuente de datos cambia de registro, y necesita cargar con los valores del
> nuevo registro, los controles con los que está enlazada. El momento en que
> se
> produce es justo antes de presentar el valor en el control enlazado.
>
> Por defecto no se produce formateo alguno, por lo que en el caso de que
> necesites que alguno de los controles tenga un formato especial, debes
> escribir un método manipulador de dicho evento Format para el objeto de
> enlace asociado al campo de la fuente de datos.
>
> Puedes conectar dicho método manipulador con el objeto Binding de dos
> formas: declarando el objeto Binding a nivel de clase, usando la palabra
> clave WithEvents, o bien, si has declarado este objeto de forma local
> dentro
> de un método, mediante la instrucción AddHandler. Esta última forma es más
> flexible, ya que te permitiría conectar/desconectar dinámicamente en
> tiempo
> de ejecución, el método manipulador de formato, cambiándolo durante el
> flujo
> de la aplicación si así lo necesitaras.
>
> Te expongo a continuación un bloque de código con un ejemplo de cómo
> podrías
> aplicar esta técnica. Dicho ejemplo se basa en un formulario con 2
> TextBox,
> que enlazamos a un Dataset que obtiene los datos de la tabla Orders de la
> base de datos Northwind:
>
> '////////////////////////////////////////////////////////
> Imports System.Data.SqlClient
>
> Public Class Form1
> Inherits System.Windows.Forms.Form
>
> Private oDataSet As DataSet
> Private oAdminEnlace As CurrencyManager
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles MyBase.Load
> Dim oConexion As New SqlConnection
> oConexion.ConnectionString = "data source=localhost;persist
> security
> info=True;" & _
> "initial catalog=Northwind;user id=sa;"
>
> Dim oAdaptador As SqlDataAdapter = New SqlDataAdapter("SELECT *
> FROM
> Orders", oConexion)
>
> oDataSet = New DataSet
>
> oConexion.Open()
> oAdaptador.Fill(oDataSet, "Orders")
> oConexion.Close()
>
> Dim oEnlace As Binding
>
> oEnlace = New Binding("Text", oDataSet, "Orders.OrderID")
> Me.txtOrderID.DataBindings.Add(oEnlace)
> oEnlace = Nothing
>
> oEnlace = New Binding("Text", oDataSet, "Orders.OrderDate")
> ' atención!!!! la siguiente línea constituye la clave de todo el
> asunto
> AddHandler oEnlace.Format, AddressOf FormatearHora
> Me.txtOrderDate.DataBindings.Add(oEnlace)
> oEnlace = Nothing
>
> oAdminEnlace = Me.BindingContext(oDataSet, "Orders")
> End Sub
>
> Private Sub btnSiguiente_Click(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles btnSiguiente.Click
> oAdminEnlace.Position += 1
> End Sub
>
> Private Sub FormatearHora(ByVal sender As Object, ByVal e As
> ConvertEventArgs)
> Dim dtHora As DateTime = e.Value
> e.Value = dtHora.ToString("H:mm:ss")
> End Sub
>
> End Class
> '////////////////////////////////////////////////////////
>
> Prueba este ejemplo, o adáptalo a tu código, a ver si de esta forma puedes
> solucionar el problema.
>
> Espero que te sirva de ayuda.
>
> Un saludo
> Luis Miguel Blanco
> http://www.dotnetmania.com
>
>
> "amigo" wrote:
>
>> hola a todos
>> tendo un dataset asociado a un textbox , como puedo hacer que me muestre
>> solo la hora?
>> se despide cordialmente,
>>
>>
>> amigo
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida