• 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

    • Watchdog finds Microsoft guilty of confusing advertising when it comes to Copilot by Usama Jawad While Microsoft is advocating for Copilot usage in both personal and enterprise environments as much as possible, it arguably hasn't made as big of a splash as it wanted. Now, the U.S. watchdog National Advertising Division (NAD) has criticized Microsoft for some of its advertising practices when it comes to Copilot. In a recent blog post spotted by The Verge, NAD noted that Copilot does possess the functionalities that Microsoft expressly claims it does in enterprise use cases. This includes capabilities like summarization of content, generating text, and creating outlines for PowerPoint slide decks. While Copilot does have some limitations in this area, NAD thinks that they are pretty minor, so the lack of disclosure in this area doesn't really impact how most customers leverage Copilot. That said, the watchdog discovered some problems in Microsoft's messaging when it came to Business Chat. It believes that Redmond's universal and interchangeable use of Copilot for both the assistant and Business Chat can cause confusion among users, as they judge their functionalities. For example, NAD argues that while Copilot is quite fast at seamlessly generating documents in other applications, this is not the case with Business Chat, which requires more manual steps, and this is not abundantly clear in the advertising on Microsoft's website. Finally, NAD advised Microsoft to get rid of its claims regarding an increase in productivity and ROI because while the tech giant does have supporting studies to back its boasts, they do not provide a "good fit" for objective claims. It's also worth highlighting that the UK government recently did trial Copilot in work environments and discovered that participants did save 26 minutes per day on average. Still, it seems like this is not good enough for NAD. Interestingly, Microsoft did respond to NAD's advisory, saying that while it disagrees with some of the watchdog's findings, it has made changes to its advertising messages in order to comply with NAD's recommendations. Source: NAD via The Verge
    • My new emergency poo ticket holder
    • These are the same ignorant, gullible, cowardly fools who still believe that gods are real and that fictional White Jesus is coming back to Earth "any day now". It's a Venn-diagram of two almost perfectly concentric circles. In short, they'll buy anything you lie to them about as long as it makes them less afraid... Of things the rest of us know we don't have to be afraid of at all.
    • It isn't fair to shift all blame to the user. Yes, the user shouldn't have blindly trusted MS with all their data, but assuming the facts reported are correct, MS massively screwed up too. Both can be true.
    • How about with add up/down votes on posts instead? Then we could upvote posts that are True based on the facts and supported by evidence. And we could also downvote the ridiculous paranoid rantings of ignorant, gullible, cowardly people who still fall for ancient proven lies and obvious fearmongering scams behind such nonsense like white supremacy, Nazism, Trumpism, etc. I'm willing to give it a try. How about you?
  • Recent Achievements

    • Experienced
      dismuter went up a rank
      Experienced
    • One Month Later
      mevinyavin earned a badge
      One Month Later
    • Week One Done
      rozermack875 earned a badge
      Week One Done
    • Week One Done
      oneworldtechnologies earned a badge
      Week One Done
    • Veteran
      matthiew went up a rank
      Veteran
  • Popular Contributors

    1. 1
      +primortal
      699
    2. 2
      ATLien_0
      268
    3. 3
      Michael Scrip
      211
    4. 4
      +FloatingFatMan
      186
    5. 5
      Steven P.
      142
  • Tell a friend

    Love Neowin? Tell a friend!