• 0

VB.net - StringFormat


Question

I want to be able to print out the results of a program using the contents of the labels and text boxes. I have managed to do that using the DrawString command. Now I want to format the string that is printed so that it looks more organized. I cannot figure out how to use tabs with right alignment. Maybe I am searching for the wrong thing. Here's a sample of my code:

Dim mtg as String
Dim mortRR as String
Dim myStringFormat As New StringFormat

Dim tabStops As Single() = {150.0F, 100.0F, 100.0F}
myStringFormat.SetTabStops(0.0F, tabStops)

mtg = "Example:" & ControlChars.Tab & "$" & txtMtg.Text & ControlChars.Tab & _
          "Amount: " & ControlChars.Tab & lblMtg.Text

mortRR = "Example RR:" & ControlChars.Tab & "$" & txtMortRR.Text & ControlChars.Tab & _
               "Amount: " & ControlChars.Tab & lblMortRR.Text

lineHeight = m_printFont.GetHeight(e.Graphics)

ypos = e.MarginBounds.Top
xpos = e.MarginBounds.Left

e.Graphics.DrawString(mtg, m_printFont, m_printBrush, xpos, ypos, myStringFormat)
ypos = ypos + lineHeight

e.Graphics.DrawString(mortRR, m_printFont, m_printBrush, xpos, ypos, myStringFormat)
ypos = ypos + lineHeight

That sets it up with left tabs, but I want them to be right tabs so the columns line up on the right side. Maybe there is a better way to do the whole thing. Hopefully, that is enough explanation. Thanks a lot.

Link to comment
https://www.neowin.net/forum/topic/118633-vbnet-stringformat/
Share on other sites

5 answers to this question

Recommended Posts

  • 0

String.Format

You can specify right/left alignment, widths, number formats, etc.

' {index[,alignment][:formatString]}
' negative alignment values indicate left justification, positive, right justification

Console.WriteLine( String.Format( "{0, -20}{1,-25}",  str1, str2 )

  • 0

I can't just space it with individual spaces because the contents of the text boxes are not always going to be the same size.

Where does Console.WriteLine display the string? I am using e.Graphics.DrawString and I can either Print it or Preview it with the Print Preview Dialog. I am not sure where I should insert the Console.WriteLine part. Sorry I don't know the technical terms. Hope you can understand.

Thanks for the suggestions.

  • 0

Console.WriteLine writes to the console(dos prompt). Sorry, I wasn't really thinking well when I wrote that.

Do you have a maximum field length for you text boxes? How big are the numbers generally going to be?

Here's the usage for String.Format:

mtg = String.Format("Example: ${0, 25:#0.00}\t\tAmount: ${1, 25:#0.00}", txtMtg.Text, lblMtg.Text);

This code will format the string so that each field for the txtMtg.Text and lblMtg.Text is 25 characters wide with right justification. It's probably excessive space, but that is just an illustration of how you would use the Format method.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • i guess you need to learn hows transformers work and some Electro-inductive polarization before posting stupid answrs
    • Does the 4TB Crucial X10 still have the Data corruption issues that plague the previous generations?
    • Is the Start menu needed? Yes. Is it needed in its current form? No. I run lubuntu, it has all my apps sorted into categories, a bunch of preferences and system tools, the option to turn off, and search. It's all in a small rectangle and does everything you need it to.
    • Star Citizen Alpha 4.2 update lands with radiation hazards, dynamic rain, and more by Pulasthi Ariyasinghe The crowd-funded sci-fi RPG Star Citizen has received another update to its public alpha build. This time, developer Cloud Imperium Games has delivered new features like radiation as a brand-new hazard, irradiated creatures, the first implementation of a dynamic weather system for planets, and more. Dubbed Storm Breaker, Alpha update 4.2's cinematic trailer can be caught above, showing off the new sandbox activity. Storm Breaker is the name of the new sandbox activity too, continuing the ongoing Regen Crisis narrative. Players will be going to Pyro 1 and 4 while uncovering the experimentation secrets of the Associated Sciences & Development company while also weathering a never-ending storm, irradiated zones, and dangerous creatures to complete the event's tasks for hard-earned loot. Speaking of radiation, players will need to wear specialized gear and navigate carefully whenever they come across these special hazardous zones on planets. "This update adds new Radiation accumulation, resistance, and falloff thresholds to player status effects," says the developer. "These effects will appear as new visual and player status cues with REMs on the HUD and can cause consequences resulting in player injury or death if not treated." Locations on Stanton and Pyro planets can now have rain happen on them at various locations and times. Cloud Imperium calls this the first implementation of its Genesis: Dynamic Weather system. When ready, the full version of this tech will be rolling out to many more planets and will supposedly have rain and cloud formations, lightning, relevant audio, water pooling, and clothing shaders for wetness. Other changes of the update include better missile and torpedo tracking, new explorable locations, irradiated juvenile sandworms to fight, fixes for space stations and landing zones to reduce clipping and glitches, and much more. The complete release notes for the update can be found here. Star Citizen Alpha 4.2: Storm Breaker is now available for all backers in the Live channel.
  • Recent Achievements

    • Week One Done
      Wayne Robinson earned a badge
      Week One Done
    • One Month Later
      Karan Khanna earned a badge
      One Month Later
    • Week One Done
      Karan Khanna earned a badge
      Week One Done
    • First Post
      MikeK13 earned a badge
      First Post
    • Week One Done
      OHI Accounting earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      681
    2. 2
      ATLien_0
      269
    3. 3
      Michael Scrip
      209
    4. 4
      +FloatingFatMan
      170
    5. 5
      Steven P.
      148
  • Tell a friend

    Love Neowin? Tell a friend!