Search code examples
vb.nettextboxcurrencycountries

Textbox currency several countries


I found out that from these lines of code we could get the currency of Canadian.

 Dim value As Decimal = ourTextbox.text 
    Dim positiveValue As Decimal = ourTextbox.text 
    Dim customCurrencyInfo As CultureInfo = CultureInfo.CreateSpecificCulture("fr-CA")

    customCurrencyInfo.NumberFormat.CurrencyNegativePattern = 8

    Dim formatString As String = value.ToString("C", customCurrencyInfo)
    Dim formatStringPositive As String = positiveValue.ToString("C", customCurrencyInfo)

    myTextbox.text = formatString
    myTextbox2.text = formatStringPositive

The output would be;

-123,45 $ 123,45 $

But what about these countries:

-Malaysia
-Indonesia
-Somalia / Africa
-Arabia

How to get their currency shown on the formatting textbox?


Solution

  • Pass different culture name as parameter of CreateSpecificCulture() method, for example :

    'Malaysia'
    Dim customCurrencyInfo As CultureInfo = CultureInfo.CreateSpecificCulture("my-MY")
    'Indonesia'
    Dim customCurrencyInfo As CultureInfo = CultureInfo.CreateSpecificCulture("id-ID")
    'Afrikaans'
    Dim customCurrencyInfo As CultureInfo = CultureInfo.CreateSpecificCulture("af")
    'Arabic'
    Dim customCurrencyInfo As CultureInfo = CultureInfo.CreateSpecificCulture("ar")
    

    You can find culture name list in MSDN : CultureInfo Class

    Note: changing culture info not only change currency symbol but may also change decimal and thousand separator. If you want to avoid that, you can copy current culture

    info and simply change it's currency symbol from other culture :
    Dim customCurrencyInfo = (CultureInfo)CultureInfo.CurrentCulture.Clone();
    Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("id-ID")
    customCurrencyInfo.NumberFormat.CurrencySymbol = culture.NumberFormat.CurrencySymbol