SaveFileDialog Class VB.NET

Namespace
System.Windows.Forms

Createable
Yes

Description
Represents a common dialog box for selecting or saving a file. The most common use of this dialog box is to ask the user for the name of a file, after which we can use VB's functions to save an existing file under that name, since the dialog box itself does not handle the process of saving a file.

The SaveFileDialog object has properties for setting the initial appearance and functionality of the dialog box, a property for returning the filename selected by the user, as well as a method for showing the dialog box. The object does not itself save the file, but instead provides the information that allows your code to do this programmatically.

A SaveFileDialog object can be instantiated as follows:

Dim oSaveDlg As New SaveFileDialog

Selected SaveFileDialog Members
The following is a brief list of some of the more important members of the SaveFileDialog class:

AddExtension property
Gets or sets a Boolean value that determines whether the default file extension is automatically added to the FileName property if the user fails to enter an extension. Its default value is True.

DefaultExt property
Gets or sets a String that defines the default file extension. The string should consist of the file extension only, without a period.

FileName property
Gets or sets a String containing the name that the user selected or entered in the dialog box.

Filter property
Gets or sets a String containing the current filter, which determines the items that appear in the "Save as type" drop-down listbox. A single item consists of a file description, a vertical bar, and the file extension (usually "*." plus the file extension). If there are multiple extensions in a single item, they are separated by semicolons. If there are multiple items, they are separated by vertical bars. For example, the following code fragment assigns a filter string to a String variable:

FilterIndex property
Gets or sets an Integer value that determines which of the items defined by the Filter property is selected. The index is one-based, rather than zero-based. When the dialog box is first displayed and no FilterIndex value is specified, it defaults to 1. When the method returns, its value indicates which filter item was selected by the user.

InitialDirectory property
Gets or sets a String that defines the directory initially displayed by the SaveFileDialog dialog box.

OverwritePrompt property
Gets or sets a Boolean value that determines whether a confirmation message is displayed when the user enters or selects an existing file.

RestoreDirectory
Gets or sets a Boolean value indicating whether the current directory is restored before the dialog box closes. Its default value is False.

ShowDialog method
Opens the SaveFileDialog dialog box. Its syntax is:

oSaveDlg.ShowDialog( )

It returns DialogResult.OK if the user clicks the OK button and DialogResult.Cancel if the user clicks the Cancel button to close the dialog box.

Example

VB .NET/VB 6 Differences
Whereas the SaveFileDialog class is implemented in the .NET Base Class Library, VB 6 offered the CommonDialog custom control. Although the two offer similar functionality, their public interfaces arealmost completely different.

SaveSetting Procedure

Class
Microsoft.VisualBasic.Interaction

Syntax
SaveSetting(appname, section, key, setting)

Description
Creates or saves an entry for a VB application in the Windows registry

Rules at a Glance

  • If either the appname or section subkeys are not found in the registry, they are automatically created.
  • The function writes a value to a subkey of the KEY_CURRENT_USERSoftwareVB and VBA Program Settings key of the registry.
  • section need not be an immediate subkey of appname; instead, section can be a fully qualified path to a nested subkey, with each subkey separated from its parent by a backslash.

For example, a value of SettingsCoordinates for the section argument indicates that the value is to be retrieved from HKEY_CURRENT_USERSoftwareVB and VBA Program SettingsappnameSettingsCoordinates.

  • Visual Basic writes setting to the registry as a string (REG_SZ) value. If setting is not a string, VB attempts to coerce it into a string in order to write it.
  • If the setting cannot be saved, a runtime error will be generated.

Programming Tips and Gotchas

  • The built-in registry-manipulation functions allow you to create professional 32-bit applications that use the registry for holding application-specific data, in the same way that .INI files were used in the 16-bit environment. You can, for example, store information about the user's desktop settings (i.e., the size and position of forms) the last time the program was run.
  • Since it writes to the current user's registry key, SaveSetting should be used exclusively for storing user settings; it should not be used to store nonuser information (i.e., hardware information, system-level information, or application information that is independent of the user).
  • GetSetting, GetAllSettings, and SaveSetting allow you direct access to only a limited section of the Windows registry, that being a special branch created for your application

(HKEY_CURRENT_USERSoftwareVB and VBA Program Settingsyourappname).

  • SaveSetting does not allow you to write to the default value of a registry key. Attempting to do so produces runtime error 5, "Invalid procedure call or argument." This is not as great a limitation as it may appear, since GetSetting also cannot retrieve a default value from a registry key.
  • This may seem obvious, but it has been often overlooked: if a user hasn't run the application before and your application's initialization doesn't set up the registry structure for the application, the key values won't be there.
  • The previous point is particularly applicable when running your application on Windows in a multiuser environment since Microsoft chose to use the HKEY_CURRENT_USER branch of the registry to store entries for VB applications. This means that your application can be running swimmingly for one user, but when another user logs onto the machine, the registry settings are not available.
  • Rather than rely on the relatively underpowered registry-access functionality available in Visual Basic, we highly recommend that you instead use the Registry and RegistryKey classes available in the BCL's Microsoft.Win32 namespace.

ScriptEngine Function

Class
Microsoft.VisualBasic.Globals

Syntax
ScriptEngine( )

Return Value
A String containing the value "VB"

Description
Indicates the programming language currently in use

Programming Tips and Gotchas

  • A number of scripting engines support the ScriptEngine function, which allows you to determine the programming language used for a particular block of code. These languages, and the strings they return, are shown in the following table:

TABLE

Programming Tips and Gotchas

  • The ScriptEngine function can be most useful when calling legacy code. On the .NET platform, the need to know the current scripting engine is substantially lessened by the existence of a unified type system.

VB .NET/VB 6 Differences
The function is new to VB .NET and is not supported in VB 6.

ScriptEngineBuildVersion Function

Class
Microsoft.VisualBasic.Globals

Syntax
ScriptEngineBuildVersion( )

Return Value
An Integer containing the build number

Description
Returns the build number of the VB .NET language engine

Programming Tips and Gotchas
This function is also implemented in the JScript scripting engine.

VB .NET/VB 6 Differences
This function is new to VB .NET.

ScriptEngineMajorVersion Function

Class
Microsoft.VisualBasic.Globals

Syntax
ScriptEngineMajorVersion( )

Return Value
An Integer containing the major version number

Description
Indicates the major version (1, 2, etc.) of the programming language currently in use

Rules at a Glance
The initial version of VB .NET returns "7" as its major version number.

Programming Tips and Gotchas

  • This function is also implemented in the JScript scripting engine.
  • If your script requires some functionality available in a baseline version, ordinarily you want to make sure that the script is running on that version or a later version. You do not want to test for equality, since that may leave your code unable to run on later versions of the language engine.

VB .NET/VB 6 Differences
This function is new to VB .NET.

ScriptEngineMinorVersion Function

Class
Microsoft.VisualBasic.Globals

Syntax
ScriptEngineMinorVersion( )

Return Value
An Integer containing the minor version number

Description
Indicates the minor version (the number to the right of the decimal point) of the programming language currently in use

Programming Tips and Gotchas

  • This function is also implemented in the JScript scripting engine.
  • If your script requires some functionality available in a baseline minor version, ordinarily you would want to make sure that the script is running on that version or a later version. Test for a minor version with a code fragment like:

VB .NET/VB 6 Differences
This function is new to VB .NET.

Second Function

Class
Microsoft.VisualBasic.DateAndTime

Syntax
Second(timevalue)

Return Value
An Integer in the range 0 to 59, specifying the second in timevalue

Description
Extracts the seconds from a given time expression

Rules at a Glance
If the time expression time is Nothing, the Second function returns 0.

Seek Function

Class
Microsoft.VisualBasic.FileSystem

Syntax
Seek(filenumber)

Return Value
A Long indicating the current read/write position

Description
Returns the current position of the read/write marker in the open file filenumber

Rules at a Glance

  • The Seek function returns a whole number in the range 1 to 2,147,483,647.
  • If filenumber was opened in Random mode, the number returned by the Seek function refers to the next record to be written or read.
  • In all other file open modes (Append, Binary, Input, and Output), the number returned by the Seek function is the byte position at which the next read or write operation will occur.

Seek Procedure

Class
Microsoft.VisualBasic.FileSystem

Syntax
Seek(filenumber, position)

Description
Places the read/write marker at a given position where the next read/write operation should occur

Rules at a Glance

  • If the file has been opened in Random mode, position refers to the next record number that should be read or written.
  • In all other file open modes (Append, Binary, Input, and Output), position is the byte where the next read or write operation will start.
  • The use of a record number in any subsequent FileGet or FilePut procedure overrides the position set by the Seek procedure.
  • The size of a file can be increased as the result of a write operation that is performed after a call to the Seek procedure in which position is beyond the end of the file.
  • If position is 0 or negative, a runtime error will be generated.

Programming Tips and Gotchas
Unused records in a random-access data file are not necessarily blank. For example, if you open a brand new data file, then perform a seek operation to record number 10 and write a new record, the preceding 9 records will be filled with binary data that was present on the section of the disk used by the new file prior to its creation.

Select Case Statement

Syntax

Any numeric or string expression whose value determines which block of code is executed

Comma-delimited list of expressions to compare values with testexpression

Program statements to execute if a match is found between any section of expressionlist and testexpression

Program statements to execute if a match between testexpression and any expressionlist cannot be found expressionlist can use any (or a combination of any) of the following:

TABLE

TABLE

Description
Allows for conditional execution of a block of code, typically out of three or more code blocks, based on some condition. Use the Select Case statement as an alternative to complex nested If...Then...Else statements.

Rules at a Glance

  • Any number of Case clauses can be included in the Select Case statement.
  • If a match between testexpression and any part of expressionlist is found, the program statements following the matched expressionlist will be executed. When program execution encounters the next Case clause or the End Select clause, execution will continue with the statement immediately following the End Select clause.
  • If multiple Case statements are True, only the statements belonging to the first true Case statement are executed.
  • If used, the Case Else clause must be the last Case clause. Program execution will only encounter the Case Else clause—and thereby execute the elsestatements—if all other expressionlist comparisons have failed.
  • Use the To keyword to specify a range of values. The lower value must precede the To clause, and the higher value follow it. Failure to do this does not generate a syntax error. Instead, it causes the comparison of the expression with testexpression to always fail, so that program execution falls through to the Case Else code block, if one is present.
  • The Is keyword is used to precede any comparison operators. For example:

Case Is >= 100

  • Select Case statements can also be nested.

Example
The following example uses Select Case to act based on the response to a MsgBox function:

Programming Tips and Gotchas

  • The Select Case statement is the VB equivalent of the Switch construct found in C and C++.
  • The Case Else clause is optional. However, as with If...Then...Else statements, it is often good practice to provide a Case Else to catch the exceptional instance when—perhaps unexpectedly—a match cannot be found in any of the expressionlists you have provided.
  • The To clause can be used to specify ranges of character strings. However, it is often difficult to predict the thousands of possible combinations of valid characters between two words that will be successfully matched by Select Case.
  • The Is keyword used in the Select Case statement is not the same as the Is comparison operator.
  • Multiple conditions in a single Case statement are evaluated separately, not together; that is, they are connected with a logical OR, not a logical AND. For example, the statement:

Case Is > 20, Is < 40

will evaluate to True whenever the value of testexpression is greater than 20. In this case, the second comparison is never evaluated; it is evaluated only when testexpression is under 20. This suggests that if you use anything other than the most straightforward conditions, you should test them thoroughly.

Send, SendWait Methods

Class
System.Windows.Forms.SendKeys

Syntax
SendKeys.Send(keys)
SendKeys.SendWait(keys)

Description
Sends keystrokes to the active window of the foreground application. For SendKeys.Send, furtherexecution continues without waiting for the keys to be processed. For SendKeys.SendWait, furtherexecution is suspended until the keystrokes have been processed.

Rules at a Glance

  • To send normal alphabetical or numeric characters, simply use the character or characters enclosed in quotation marks. For example, "SOME Text 123".
  • The following characters represent special keys or have special meaning within the Keys string:

TABLE

TABLE

  • To use these characters literally, you must surround the character with braces. For example, to specify the percentage key, use {%}.
  • Preceding a string with the special characters described in the previous table allows you to send a keystroke combination beginning with Shift, Ctrl, or Alt. For example, to specify Ctrl followed by "M," use ^M.
  • If you need to specify that the Shift, Ctrl, or Alt key is held down while another key is pressed, you should enclose the key or keys in parentheses and precede the parentheses with the special character code. For example, to specify the M key being pressed while holding down the Alt key, use %(M).
  • The following table describes how to specify nondisplaying (action) characters in the Keys string:
  • TABLE

    TABLETABLE

  • Special formatting syntax allows you to specify a key being repeatedly pressed. The syntax is:
  • {key numberoftimes}

  • For example, {M 3} represents pressing the M key three times.

Example
The following program launches Notepad, loads a text file whose name is passed as a parameter, gives the focus to Notepad, then uses its File Exit menu option to close the application:

Programming Tips and Gotchas

  • Send and SendWait will only work directly with applications designed to run in Microsoft Windows.
  • You may find that some keys or key combinations cannot be sent successfully. For example, you cannot use Send and SendWait to send the Print Screen key to any application. You also cannot send the Alt and Tab keys ("%{Tab}").
  • Typically, Send or SendWait is used as a "convenience" feature to send an occasional keystroke to its application or to another application. It can also be used to add a keystrokemacro capability to an application. In some cases, it is even used for remotely controlling an application. In this latter case, Send or SendWait is often combined with the Shell function—to start an instance of another application—or the AppActivate procedure—to give it the focus before Send or SendWait is used. The example program illustrates this.
  • It's worthwhile mentioning the difficulties of using Send or SendWait as a method for controlling a program remotely. Windows is an event-driven operating system. Consequently, the order of events is controlled primarily by the user, and the precise order of events is difficult or even impossible to anticipate. Remote control of an application using Send or SendWait, however, typically makes a number of assumptions about that application, the most basic of which is that it has the focus when Send or SendWait is called. Given that Send and SendWait do not offer close control over a remote application in the same way as OLE automation does, the event-driven character of Windows can easily intervene to invalidate those assumptions. This makes Send and SendWait less than optimal choices as tools for remote control of an application.

Set Statement

Syntax

Description
Defines a Property Set procedure that sets a property value

Rules at a Glance

  • The Set statement can only be used within a Property...End Property construct.
  • The value assigned to the property is usually stored to a variable that's Private to the class. This protects the property value from modification other than by calling the Property Get procedure.
  • The Value keyword represents the value to be assigned to the property. This value must be of the same data type as the property.

Example
The example code illustrates a class that has a simple property and a property array. The syntax documented above, rather than the "official" syntax (see the note in Programming Tips and Gotchas), is used, since in our opinion it is much clearer and intuitive.

Programming Tips and Gotchas
An alternative syntax for the Set statement (though it happens to be the officially documented one, as well as the one used by Visual Studio) is:

Here var is a variable representing the value to be assigned to the property, and Type is the data type of var. Type must be the same as the data type of the Property statement.

VB .NET/VB 6 Differences
The Property Let and Property Set statements in VB 6 correspond to the Set statement in VB .NET. Though the purpose and basic operation of these constructs are identical, the syntax of the VB .NET construct is vastly simplified and more intuitive.

SetAttr Procedure

Class
Microsoft.VisualBasic.FileSystem

Syntax
SetAttr(pathname, attributes)

Numeric expression, FileAttribute enumerated constant, or global VB constant specifying the attributes

Description
Changes the attribute properties of a file

Rules at a Glance

  • You can use any sum of the following constants to set the attributes of a file:

TABLE

TABLE

  • Each global constant has a corresponding constant in the FileAttribute enumeration. For example, vbNormal is identical to FileAttribute.Normal. The file-attribute constants vbDirectory, vbAlias, and vbVolume cannot be used when assigning attributes.
  • File-attributes constants can be Ored to set more than one attribute at the same time. For example:

SetAttr "SysFile.Dat", FileAttribute.System Or FileAttribute.Hidden

  • pathname can include a drive letter. If a drive letter is not included in pathname, the current drive is assumed. The file path can be either a fully qualified path or a relative path from the current directory.
  • pathname can include a folder name. If the folder name is not included in pathname, the current folder is assumed.
  • Attempting to set the attributes of an open file will generate a runtime error.

Example

Programming Tips and Gotchas

  • Setting file attributes simultaneously clears any attributes that are not set with the SetAttr procedure. For example, if SysFile.Dat is a read-only, hidden, system file, the statement:

SetAttr "sysfile.dat", VbArchive

sets the archive attribute but clears the read-only, hidden, and system attributes. Clearly, this can have disastrous implications. To retain a file's attributes while setting new ones, first retrieve its attributes using the GetAttr function, as the example program illustrates.

  • Setting a file's attributes to VbNormal clears all file attributes.
  • Not all attribute values can be assigned to a file; many are assigned only by the operating system. For example, FileAttribute.Directory cannot be assigned to an existing directory or a file. Thus, when setting the attribute value of a file or directory, you must mask out these (or any other) illegal values. For example, the following code fragment shows how to do this in the case of a directory:

Shadows Keyword

Syntax
Shadows

Description
Indicates that a derived class member is hidden if its class is assigned to an instance of its base class. Calls to the shadowed method when made through the base class see the base class implementation rather than the shadowed implementation.

Example

VB .NET/VB 6 Differences
The Shadows keyword is new to VB .NET.

Shell Function

Class
Microsoft.VisualBasic.Interaction

Syntax
Shell(pathname[,style][, Wait][, Timeout] )

The style of window and whether it receives the focus; see Rules at a Glance.

Boolean indicating whether to wait for the pathname application to finish execution before continuing execution of subsequent code

If Wait is True, number of milliseconds to wait for the pathname application to terminate before the Shell function times out

Return Value
An Integer representing the Process ID, or 0

Description
Launches another application and, if successful, returns that application's task ID

Rules at a Glance

  • pathname can include a drive letter. If a drive letter is not included in pathname, the current drive is assumed.
  • pathname can include a folder name. You can use either a fully qualified path (i.e., starting from the root directory) or a relative path (i.e., starting from the current directory). If the folder name is not included in pathname, the current folder is assumed.
  • pathname can include any command-line arguments and switches required by the application.

For example:
Shell("notepad.exe c:data.txt", AppWinStyle.NormalFocus)

launches Notepad, which loads the file data.txt.

  • Visual Basic includes the following intrinsic constants for setting the style argument:

AppWinStyle.Hide

  • The default when no style is specified is AppWinStyle.MinimizedFocus (2).
  • If the application named in pathname executes successfully, Shell returns the windows task ID of the program. (The task ID is better known as the process ID or PID, a unique 32-bit value used to identify each running process.) It can be used as a parameter to the AppActivate procedure to give the application the focus—and possibly to control it remotely using the Send and SendWait methods. The process ID is also required by a number of Win32 API calls.
  • If the application named in pathname fails to execute, a runtime error is generated.
  • The file launched by Shell must be executable. That is, it must be a file whose extension is .EXE or .COM (an executable file), .BAT (a batch file), or .PIF (a DOS shortcut file).
  • Wait determines whether the Shell function operates synchronously (True) or asynchronously (False). The default is False; control returns to the application, and code continues executing as soon as the process ID is known. If True, the Shell function returns only when the pathname application is closed or, if Timeout is not -1, when the timeout period has expired.
  • If Wait is False, the Shell function returns the application's process ID. If Wait is True, it returns either the process ID (if control returns to the application because Timeout has elapsed) or 0 (if control returns to the application because the pathname application has been closed). In this latter case, Shell returns a 0 because, since the pathname application has been closed, its process ID is no longer valid.
  • Timeout applies only when Wait is True. It defines the number of milliseconds that the application will wait for the pathname application to end before the wait is abandoned and application code resumes execution. Its default value is -1, which means that there is no timeout value and control returns to the application only when the pathname application has terminated.

Programming Tips and Gotchas

  • Wait is a long-needed addition to the Shell function that allows your application to know when the launched application has terminated.
  • The Shell function does not use file associations. You cannot, for example, supply MyReport.Doc as the pathname in the hope that VB will load Microsoft Word, which in turn will load MyReport.Doc.
  • Setting Wait to True and leaving Timeout at its default value of -1 creates the possibility that control will never return from the pathname application to the VB .NET application.

VB .NET/VB 6 Differences
The Wait and Timeout arguments are new to VB .NET. They are not supported by VB 6.

Sign Function

Class
System.Math

Syntax
Sign(value)

Return Value
Integer

Description
Determines the sign of a number

Rules at a Glance
The return value of the Sign function is determined by the sign of value, as follows:

TABLE

Rules at a Glance

Programming Tips and Gotchas

  • Sign is useful in cases in which the sign of a quantity defines the sign of an expression. For example:

lngResult = lngQty * Sgn(lngValue)

  • This is a Shared member, so it can be used without creating any objects.
  • If you are using the Sign function to evaluate a result to False (0) or True (any nonzero value), you could use the CBool function instead.
  • A major use for Sign is to determine the sign of an expression.

VB .NET/VB 6 Differences
The name of this function has changed. In VB 6, it is named Sgn. In VB .NET, it is named Sign and is a member of the Math class of the System namespace.

Sin Function

Class
System.Math

Syntax
Sin(a)

Return Value
A Double containing the sine of an angle

Description
Returns the ratio of two sides of a right triangle in the range -1 to 1

Rules at a Glance

  • The ratio is determined by dividing the length of the side opposite the angle by the length of the hypotenuse.
  • This is a Shared member, so it can be used without creating any objects.

Programming Tips and Gotchas

  • You can convert degrees to radians using the formula:

radians = degrees * (pi/180)

Sinh Function

Class
System.Math

Syntax
Math.Sinh(value)

Return Value
A Double denoting the hyperbolic sine of the angle

Description
Returns the hyperbolic sine of an angle

Rules at a Glance
This is a Shared member, so it can be used without creating any objects.

VB .NET/VB 6 Differences
The Sinh function is new to the .NET Framework.

SLN Function

Class
Microsoft.VisualBasic.Financial

Syntax
SLN(cost, salvage, life)

Return Value

A Double representing depreciation per period

Description
Computes the straight-line depreciation of an asset for a single period

Rules at a Glance

  • The function uses a very simple formula to calculate depreciation:

(cost - salvage) / life

  • The depreciation period is determined by the time period of life.
  • All arguments must be positive numeric values.

Space Function

Class
Microsoft.VisualBasic.Strings

Syntax
Space(number)

Return Value
A String containing number spaces

Description
Creates a string containing number spaces

Rules at a Glance
While number can be zero (in which case the function returns the empty string), runtime error 5, "Invalid procedure call or argument," is generated if number is negative.

Programming Tips and Gotchas
The Space function is most useful for creating a string buffer, an area where an external function can write data to be returned to the calling program.

Spc Function

Class
Microsoft.VisualBasic.FileSystem

Syntax
Spc(n)

Return Value
A String containing n spaces

Description
Inserts spaces between expressions in a Print or PrintLine procedure

Rules at a Glance

  • Spc can only be used with the Print or PrintLine procedure.
  • If the width of the device being printed to is greater than n, the print position is set to immediately after the number of spaces printed by the Spc function.
  • If the width of the device being printed to is less than n, the print position is set to the current position plus the result of the formula n Mod devicewidth.
  • If n is greater than the difference between the current print position and the width of the device, Spc inserts a line break and then inserts spaces in accordance with the following formula:

n - (devicewidth - currentposition)

  • When using a proportional font, the Spc function uses the average width of all characters for that particular font to determine the width of the space character to print.

Programming Tips and Gotchas

  • When the number of fixed-width columns is important, you should use either the Space or the Tab function, since there is not necessarily a relationship between the spaces provided by the Spc function and fixed-width columns.
  • You can convert radians to degrees using the formula:

degrees = radians * (180/pi)

Split Function

Class
Microsoft.VisualBasic.Strings

Syntax
Split(expression, [delimiter[, limit[, compare]]])

The method of comparison. Possible values are CompareMethod.Binary (the default) or CompareMethod.Text.

Return Value
A String array containing the substrings of expression delimited by delimiter.

Description
Parses a single string containing delimited values into an array

Rules at a Glance

  • If expression is a zero-length string, Split returns an empty array.
  • If delimiter is not found in expression, Split returns the entire string in element 0 of the returned array.
  • If delimiter is omitted, a space character (" ") is used as the delimiter.
  • If limit is omitted or its value is -1, all strings are returned.
  • The default comparison method is CompareMethod.Binary.
  • Once one less than limit has been reached, the remainder of the string is placed, unprocessed, into the next element of the returned array. This is important, because it can lead to unexpected results. For instance, the code:

prints:

x y z

because the Split function stuffs the remaining portion of the original string into the last array element. This leaves no array elements for the actual split operation. To split off the first substring, we need to set count to at least 2:

Programming Tips and Gotchas

  • Strings are written to the returned array in the order in which they appear in expression.

The setting of compare is important only if delimiter is an alphabetic character, in which case CompareMethod.Binary will perform a case-sensitive comparison, and Compare.Method.Text will perform a case-insensitive one.


All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

VB.NET Topics