|
I liked how the masktextbox in vb6 works. Is there anything similar to that in vb.net? I am pretty much trying to mask a phone number to make it
(###)###-####. Is this possible to do in vb.net?
This is what I am doing now:
txtHome.Text = Microsoft.VisualBasic.Left(strHome, 3) & "-" & Microsoft.VisualBasic.Mid(strHome, 4, 3) & "-" & Microsoft.VisualBasic.Right(strHome, 4) which produces ###-###-####. There has to be another way to do this. It is working this way but when I save back to the database, I have to unmask it(which I don't like). Please help.
Thanks
Beginner in ASP.Net and VB.Net
|
|
|
|
|
Well, there is no Masked Edit class in the .NET BCL. At least, not yet...
You can still use the Masked Edit control from VB6 though. If MSMASK32.OCX on your machine and registered, all you need to do is add it to the ToolBox.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dave Kreskowiak wrote:
You can still use the Masked Edit control from VB6 though. If MSMASK32.OCX on your machine and registered, all you need to do is add it to the ToolBox.
I tried this and all seemed great but when I went to fill the masked edit control with text, it never displays any text. Is there something that I need to set or change in the control? The only thing I did was change the mask to (###)###-####, then filled it with text
txtNumber.Text = "1234567899". Nothing happens.
Any suggestions?
Thanks
|
|
|
|
|
That's because when you use the .Text property, the text entered must match the mask format exactly. If not, you won't see anything. You can't use the MaskedEdit control to format the data for you. You have to use the String.Format method for that.
Text Property (MaskedEdit Control)[^]
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Is there a way in vb.net code to find what the screen resolution on the clients machine is set to?
For example, I might want to place a form at a specific spot close to the bottom righthand side of the screen. To do this I change the location property. Unfortunately the bottom right corner changes depending on the screen size the client has setup or even changes to while using my app.
Any help is appreciated?
Lost in the vast sea of .NET
|
|
|
|
|
Check out the Screen class in the System.Windows.Forms namespace. It'll give you everything you need to get the dimensions you want. Just be aware that your application can be running on a multiple monitor desktop and must account for this. Use the PrimaryScreen property to return a Screen object that represents, obviously, the primary screen, the one most applications are displayerd on when launched.
An example:
' Retrieve the working rectangle from the Screen class
' using the PrimaryScreen and the WorkingArea properties.
Dim workingRectangle As System.Drawing.Rectangle = _
Screen.PrimaryScreen.WorkingArea
' Set the size of the form slightly less than size of
' working rectangle.
Me.Size = New System.Drawing.Size(workingRectangle.Width - 10, _
workingRectangle.Height - 10)
' Set the location so the entire form is visible.
Me.Location = New System.Drawing.Point(5, 5)
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
This worked great!!
Thanks!
Lost in the vast sea of .NET
|
|
|
|
|
well i need to set text for a combo and i dont want anyone else to be able to edit the text. Once some text has been selected the user can also be able to choose an item from the combo meaning i dont want the lock property. I've set the style to 0 and i can do the set text part but it is editable. When i set the combo style property to 2 then i cant set text in the combo. Any ideas what i am missing out on??
|
|
|
|
|
I'm confused... What exactly are you trying to do? A ComboBox, style = 2, would let you pick from the list, but not edit the text in the textbox. IIRC, you can set the text in the textbox through code, but only if the text matches an item in the list. So what's the goal here?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
i need to select a particular text and the user should not be able to edit the combo box.
Thanks for the reply
|
|
|
|
|
FASTian wrote:
the user should not be able to edit the combo box
Then you'll have to make your selection in code and then set the .Enabled property to False . If you let the user make another selection from the dropdown of the combo, that selection will replace any text in the textbox portion of the combo. If you don't want the user to change that text, you either have to disable to combobox or handle the Changed event and, in the event handler, check to see if the .Text property is changed from what it is supposed to be and set it back if necessary.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Your explanation is a bit vague. But using a combo box is easy to construct. No one cannot edit a combo box. I created through a tutorial Customer Orders. This utilizes a combo box with a listing of companies, and updates the customer orders. Also includes a set of dropdown date calendars. These infomation are stored in an access database not sql server.
bravo659
|
|
|
|
|
ok maybe i am explaining this wrong. Here's the actual scenario:
1. We query the server about all the possible city names available and fills the combo box with all the names. Eg. AA,AB,AC and AD
2. When the customer enters a phone number we search the database and if the phone number exists then i just want the combo box to show the city that the matches the phone number for Eg. AB is the city the number matches to then AB should be selected in the combo box. If the number matches no city then we do nothing.
3. We also DONT want the customer to be able to edit the combo box field.
4. The customer can also SELECT a city himself if he wants to by selecting a value from the combo box.
anyways thanks for even lookin at this
|
|
|
|
|
Correct me if I'm wrong, but I think I know what you want:
You want to set a specific text into the combobox (from one of the items in the list) through code and you don't want users to edit the combobox text.
There are several ways you can do this:
1. Use this function to get and set the index of the item (instead of the text) you want to select in the combobox while keeping your combobox style to 2:
Public Function GetComboBoxIndex(hWnd As Long, SearchKey As String, Optional FindExactMatch As Boolean = True) As Integer
'Parameters:
' hWnd - the handle to the ComboBox control. Usage: Combo1.hWnd
' SearchKey - item that you would like to search for. Can be any string - case doesn't matter when searching
' Optional FindExactMatch - Default is True. Pass False to find a partial match
'Return:
' Returns the index of the found match. If the match is not found, -1 is returned
'Usage:
' Combo1.ListIndex = GetComboBoxIndex(Combo1.hWnd, "Test Item")
' Combo1.ListIndex = GetComboBoxIndex(Combo1.hWnd, "Test Item", False)
If FindExactMatch Then
GetComboBoxIndex = CInt(SendMessage(hWnd, CB_FINDSTRINGEXACT, -1, ByVal SearchKey))
Else
GetComboBoxIndex = CInt(SendMessage(hWnd, CB_FINDSTRING, -1, ByVal SearchKey))
End If
End Function
2. Similar to #1, you can iterate through the combobox item and compare the text to get the index, but this is inefficient.
3. You can implement the AutoFill function on the KeyPress event and IsComboboxItemValid on the Validate event for the combobox. This enables user to type into the combobox (using style 0) but also makes sure that whatever they type will be in the items list.
Public Sub AutoFillCombobox(ByRef comboBox As comboBox, ByRef KeyAscii As Integer)
Dim intIndex As Integer
Dim intRemainder As Integer
Dim strFullText As String
Dim strPartialText As String
If comboBox.Locked Then
KeyAscii = 0
Exit Sub
End If
If KeyAscii >= 33 And KeyAscii <= 126 Then
comboBox.SelText = Chr(KeyAscii)
strPartialText = comboBox.Text
intIndex = GetComboBoxIndex(comboBox.hWnd, strPartialText, False)
If intIndex > -1 Then
strFullText = comboBox.List(intIndex)
intRemainder = Len(strFullText) - Len(strPartialText)
If intRemainder > 0 Then
comboBox.SelStart = Len(comboBox.Text)
comboBox.SelText = Right(strFullText, intRemainder)
comboBox.SelStart = Len(strPartialText)
comboBox.SelLength = Len(strFullText) - Len(strPartialText)
End If
End If
KeyAscii = 0
End If
End Sub
Public Function IsComboboxItemValid(ByRef comboBox As comboBox, Optional ByVal blnPrompt As Boolean = False, Optional ByRef Cancel As Boolean) As Boolean
Dim intIndex As Integer
intIndex = -1
If IsComboboxItemListed(comboBox, intIndex) Then
comboBox.ListIndex = intIndex
IsComboboxItemValid = True
Else
IsComboboxItemValid = False
Cancel = True
If blnPrompt Then
MsgBox "Item is not in the list." & vbCrLf & "Please select an item from the list.", vbInformation, "Item Not Available"
End If
End If
End Function
I hope one of those can help you.
Cheers!
|
|
|
|
|
THANKS !!
this is what i've been looking for. Sorry guys i guess was being a bit vague in the beginning . anyway the only thing missing is the IsComboboxItemListed(comboBox, intIndex) function and defination CB_FINDSTRINGEXACT i know this is kinda stupid to ask for everything but am a newbie to VB and this is probably the first thing i got stuck on in VB.
Thanks for the help dude..
really appreciate it
|
|
|
|
|
I can't access my PC right now, and this is what I found through Google.
If this doesn't work, try searching through Google again.
Private Const CB_FINDSTRINGEXACT = &H158
Cheers
Edbert P
|
|
|
|
|
I cannot see where the validator controls allow me to validate a string length. I can enter too many characters in the control and the results cause my sql to hit the 'Catch' ....also having a hard time finding reference to formatting strings like social security numbers, phone numbers and etc. Date is handled with the date options well but can't seem to comprehend how to do a custom format of a string?? All help appreciated.
JohnR
|
|
|
|
|
You can use the MaxLength property of TextBox in addition to the Validation Controls.
|
|
|
|
|
Thanks for the heads up on the maxlength, any help on the formatting. I have seen references to the maskededit.control, string.format and cannot seem to find an easy way to display format, without parseing the string, nor create an input mask. All help appreciated.
JohnR
|
|
|
|
|
I have a vb.net console app being executed by a sql job, however the job errors with the message ‘access denied’. The console app is located on a network server. How do I grant permissions, thus avoiding this error? Thank you,
Jason W.
|
|
|
|
|
Well, you have to check two things.
1) Check to see if the Windows account that the SQL job is running under has sufficient rights to the network location where the app is stored. If it's running under the Local SYSTEM account, then I guarantee that it doesn't.
2) .NET Framework apps running from a remote location (i.e. network) are not fully trusted and some functions, like writing to the file system, will throw all kinds of security errors, like Access Denied. Check to make sure that your code is running with sufficient trust. Read up on Security Policy Management[^] on MSDN for more information.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have added the following in an attempt to resolve the error:
Dim ps As PermissionSet = New PermissionSet(PermissionState.Unrestricted)<br />
Dim sp As New SecurityPermission(PermissionState.Unrestricted)<br />
<br />
ps.AddPermission(New EnvironmentPermission(PermissionState.Unrestricted))<br />
ps.AddPermission(New UIPermission(PermissionState.Unrestricted))
Now I am receiving the following error:
Unhandled Exception: System.Security.SecurityException: <br />
Request for the permission of type System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.5000.0, <br />
Culture=neutral, PublicKeyToken=b77a5c561934e089 failed. <br />
...<br />
The state of the failed permission was: <br />
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=1.0.5000.0, <br />
Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode"/>. <br />
...
I admit at this point I am guessing as how to resolve the error. If possible I would like to put the app into unrestricted mode. I appreciate your thoughts?
Jason W.
|
|
|
|
|
Well, finish reading the link I posted yesterday and then go to Administering Security Policy[^] for a hint on how to add the correct permissions to the security zone that your app is going to be running under, since it's coming from a network share.
You can scrap the permissions code you posted. It won't work because your app can't request, and get, permissions that are denied by the security policy for the zone it's running under.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
How can I add some custom controls I have created to a form at runtime ?
When the user clicks on a button, I want to add a custom panel object to the form.
I have tried something like this :
<br />
pnlTypeDeCiment = New pnlCementTypeFixed<br />
pnlTypeDeCiment.Parent() = Me.Parent<br />
pnlTypeDeCiment.SetBounds(100, 50, pnlTypeDeCiment.Width, pnlTypeDeCiment.Height)<br />
pnlTypeDeCiment.Visible() = True<br />
But without success.
|
|
|
|
|
Hi Leblanc,
try adding the panel to your forms Controls collection. This should work:
me.controls.add(pnlTypeDeCiment)
hope this helps.
-jim
|
|
|
|