• 0

[VB.NET] Textbox disabled colors


Question

I have this little app with a textbox that changes colors (text color and background color) depending on some parameters. I also have visualstyles enabled in my app like this:

Public Sub Main()
        Application.EnableVisualStyles()
        Application.Run(frmMain)
    End Sub

The problem is the following, I don't the user to be able to edit that field at all, and I can just put readonly = true, however, the user can select the text inside and the cursro carret will be there and I also don't want that. That can be fixed with enabled = false. However, if I put it like that, I can't change the text color... How can I achieve this?

Another thing, with Application.EnableVisualStyles() when the background color of the textbox is changed during runtime, there will be a 1pixel border line with the previous background color and if I move the cursor hover the textbox, that border will now have the correct color, I don't want that to happen too and if somehow I mange to fix the enabled = false and text color on the textbox the hover thing will not work and the border with the previous color will remain there.

Any thoughts on this 2 problems?

Link to comment
https://www.neowin.net/forum/topic/268052-vbnet-textbox-disabled-colors/
Share on other sites

11 answers to this question

Recommended Posts

  • 0
  bangbang023 said:
Why not use a label?

585249869[/snapback]

Label also have the same problem with me, i used to make animated buttons by using labels and when i disable the label, the label picture became gray scale ...... thanx nazgulled for opening that thread

  • 0
  bangbang023 said:
You should be able to get it to look like a textbox if you change the control color and such.

585249968[/snapback]

nope, it doesn't look the same... it's almost there, but not the same.... I could set FormBorderStyle = Fixed3D but it's not exactly the same and I don't really like it, but I guess I don't have a choice...

  • 0

You could just set focus to another control when the particular edit box receives focus. It?s messy but it should do what you want.

  private void textBox1_Enter(object sender, System.EventArgs e)
  {
  	button1.Focus();
  }

You can remove the border by sending the text box control the WM_MOUSEMOVE (0x0200) message using SendMessage. I can only provide a C# sample, not sure how to do it in VB.NET

// At the top
using System.Runtime.InteropServices;

// Somewhere in class
[DllImport("User32.dll")]
public static extern Int32 SendMessage(int hWnd, int Msg, int wParam, IntPtr lParam); 

// Code to change background
textBox1.BackColor = Color.Blue;
SendMessage((int)textBox1.Handle, 0x0200, 0, IntPtr.Zero);

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

    • No registered users viewing this page.
  • Posts

    • The M4 Mac Mini with 16GB of RAM gets a massive discount by Taras Buria If you want to try macOS without spending over a thousand bucks on a MacBook Air or MacBook Pro, the Mac mini is a perfect choice, especially with a new discount that brought the price to a new all-time low—as low as $469, which is a very tempting deal, considering what the M4 Mac mini offers. The M4 Mac mini is the first Mac mini redesign in quite a few years. This tiny desktop computer features two front-facing USB-C ports and a headphone jack, plus an Ethernet port, HDMI, and three Thunderbolt 4 Type-C ports on the back. The computer is powered by a 10-core Apple M4 processor with 10-core graphics, which is one of the most powerful ARM processors for modern computers. You also get 16GB of unified memory and 256GB of fast SSD. Apple claims that this Mac mini is up to 13 times faster than the fastest Intel-based Mac mini. The M4 Mac Mini supports Apple's latest macOS version, like the recently announced macOS 26 Tahoe and all of its features, including Apple Intelligence capabilities. It is also a great choice if you need a versatile desktop PC that can run both Windows on ARM and macOS. Another benefit of this tiny PC is that it draws very little power while offering a powerful processor and graphics. The best part is that it is now 22% off, which saves you $170 off the MSRP ($599). Apple 2024 Mac mini with M4 chip, 16GB RAM, 256GB SSD - $469 | 22% off on Amazon US This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • Live activities is pretty cool. For a sports event when the device is on the Lock Screen the score is kept up to date in real time if you want. When in an app a stripped down version appears in the Dynamic Island.
    • I can tell you I don't need one. I use Start11 to make it Win10 styled and add custom game tiles so it's essentially an easier way to launch games than opening Steam but I definitely don't 'need' it and don't use it to launch any applications.
  • 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
      680
    2. 2
      ATLien_0
      276
    3. 3
      Michael Scrip
      208
    4. 4
      +FloatingFatMan
      172
    5. 5
      Steven P.
      143
  • Tell a friend

    Love Neowin? Tell a friend!