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
 

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



Preguntas similares