• 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

    • I think you need to adjust your style of approach. While some were affected by performance issues, and it's not a huge gap... you're acting as if Ryzen couldn't handle 11 at all. Performance issues are purely based on some facts in certain scenarios, while others are not. I see one link with a handful of people discussing the topic. I didn't join those topics or seek them out myself, as I didn't encounter noticeable drops in performance going from 10 to 11. It might also have to be because I don't have my nose stuck up the butt of single digit percentage points. I don't benchmark my PC every time something new comes out. Single percentage point differences in performance only ruffle the feathers of those that don't care about daily use. If you have a race car, do you compare that to your daily driver? Do you expect your Honda Accord to break the 9 second quarter mile like your 1000HP Pontiac Firebird? If you're so worried about FPS instead of enjoying your games... perhaps opening a curtain in your basement might provide a new perspective in life.
    • Currently updating my Win10 IoT Enterprise LTSC 2021 in a VM (QEMU/KVM) on Linux. but damn, updates take forever (makes me appreciate the lightness on Linux all the more). to give you a general idea... this update finished at 37 minutes into system uptime and I would estimate updates have been running roughly 20-30 minutes (some of this would be download time, but even subtracting that I would guess that 20-30min is close). granted, I only got two cores of my four core CPU (i5-3550) dedicated to the VM. but still, Linux wipes the floor with Windows in this regard.
    • It's disgusting that this exists and is being marketed by Neowin as a way to earn passive income. Support real writers and real arts. The world needs them more than ever. After at least 10 years, Neowin can GTFO my favorites bar.
    • It doesn't have to be "interesting" for a script/bot to just copy everything it finds and rehost it on another site. I hope you remember your post when AGI replaces not only your job and your career, but you entirely in the workforce...
  • Recent Achievements

    • Reacting Well
      rshit earned a badge
      Reacting Well
    • Reacting Well
      Alan- earned a badge
      Reacting Well
    • Week One Done
      IAMFLUXX earned a badge
      Week One Done
    • One Month Later
      Æhund earned a badge
      One Month Later
    • One Month Later
      CoolRaoul earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      531
    2. 2
      ATLien_0
      272
    3. 3
      +FloatingFatMan
      211
    4. 4
      +Edouard
      202
    5. 5
      snowy owl
      140
  • Tell a friend

    Love Neowin? Tell a friend!