Hello,
I have a form with a bindingsource on it set to display the "CaseNumber" value as the text for my form. I am wondering if there is a way to display it using a "mask." Such as "HH00-000000.0 - Calls for Service" with the numbers being replaced with the respected numbers in the database. So for example a value of 080000011 would be displayed as "HH08-000001.1 - Calls for Service".
You can use the CurrentItemChanged event of the bindingsource to format your textbox.
Here's an example that uses a datagridview and three textboxes
Public Class Form1 Private WithEvents mBS As New BindingSource() Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Creates a demo table Dim dt As New DataTable() dt.Columns.Add("ID", GetType(Integer)).AutoIncrement = True dt.Columns.Add("Item", GetType(String)) dt.Columns.Add("Date", GetType(Date)) ' Adds some rows For i As Integer = 0 To 19 dt.Rows.Add(New Object() {Nothing, "Item " & i, Now.AddDays(i)}) Next ' Binds the fields mBS.DataSource = dt Me.TextBox2.DataBindings.Add("Text", mBS, "Item", True) Me.TextBox3.DataBindings.Add("Text", mBS, "Date", True) ' Populates the datagridview Me.DataGridView1.DataSource = mBS End Sub Private Sub mBS_CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mBS.CurrentItemChanged Dim drv As DataRowView = DirectCast(mBS.Current, DataRowView) Me.TextBox1.Text = Integer.Parse(drv.Row("ID")).ToString("0000") End SubEnd Class
Here's an example that uses a datagridview and three textboxes
Open in new window