• 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

    • Sayan Sen, do you think one day an image of the Windows Vista desktop or the wallpaper could be used in the primary image of an article?
    • Big fan of EAC Here's a good non-default naming scheme I found on the web (can't take credit) File Name Scheme - %albumartist%\%year% - %albumtitle%\%tracknr2% %title% Various Artists Naming Scheme - Various Artists\%year% - %albumtitle%\%tracknr2% %title%
    • Hello, Probably the simplest way of doing this would be to add a video card to your computer.   Regards, Aryeh Goretsky  
    • Check out Lisa Melton's GitHub transcoding scripts https://github.com/lisamelton/video_transcoding
    • ChatGPT's Advanced Voice Mode gets a significant update to make it sound more natural by Pradeep Viswanathan OpenAI introduced Advanced Voice Mode last year alongside the launch of GPT-4o. This feature uses natively multimodal models, such as GPT-4o, and can respond to audio inputs in as little as 232 milliseconds, with an average of 320 milliseconds, similar to human response time in a typical conversation. It can also generate audio that feels more natural, pick up on non-verbal cues, such as the speed you’re talking, and respond with emotion. Early this year, OpenAI released a minor update to Advanced Voice Mode that reduced interruptions and improved accents. Today, OpenAI has launched a significant upgrade to Advanced Voice Mode, making it sound even more natural and human-like. Responses now feature subtler intonation, realistic cadence—including pauses and emphasis—and more accurate expressiveness for certain emotions such as empathy and sarcasm. This update also introduces support for translation. ChatGPT users can now use Advanced Voice Mode to translate between languages. Simply ask ChatGPT to start translating, and it will continue translating throughout the conversation until instructed to stop. This feature effectively replaces the need for dedicated voice translation apps. For now, the updated Advanced Voice Mode is available only to ChatGPT paid users. OpenAI also noted that there are some known limitations with this latest update, outlined below. This update may occasionally result in minor reductions in audio quality, such as unexpected variations in tone and pitch—especially noticeable with certain voice options. OpenAI expects to improve audio consistency over time. Rare hallucinations in Voice Mode still persist, sometimes producing unintended sounds resembling ads, gibberish, or background music. While some minor limitations remain, the steady stream of improvements points to a future where the line between human and AI conversation becomes increasingly indistinguishable.
  • Recent Achievements

    • Week One Done
      maimutza earned a badge
      Week One Done
    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      486
    2. 2
      +FloatingFatMan
      264
    3. 3
      snowy owl
      242
    4. 4
      ATLien_0
      223
    5. 5
      Edouard
      191
  • Tell a friend

    Love Neowin? Tell a friend!