Om man har en textBox, där enabled är satt till false, då blir ju såväl bakgrundsfärg som fontfärg annorlunda. OnPaint metoden måste du ha i en class som subclassar TextBox... du måsta alltså ärva system.windows.forms.textbox... textboxen wrappar mot native textobxen i windows , som inte stödjer custom paint , så det kommer skita sig iaf. ok , enabled = false kanske gör det hela lite bättre , eftersom inget kan scrollas eller så. Tack, men jag tror att det blir alldeles för mycket att ändra på.Annan bakgrundsfärg på textBox
Inligt http://www.syncfusion.com/FAQ/WinForms/FAQ_c94c.asp#q866q så skall man kunna komma förbi detta genom:
<code>
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush drawBrush = new SolidBrush(ForeColor); //Use the ForeColor property
// Draw string to screen.
e.Graphics.DrawString(Text, Font, drawBrush, 0f,0f); //Use the Font property
}
//och
this.SetStyle(ControlStyles.UserPaint,true);
</code>
...om jag har fattat det rätt, men jag kan inte få det att fungera.
När koden är skriven så, hur f-n kan kompilatorn veta att det är textBox2 som jag vill ändra?Sv: Annan bakgrundsfärg på textBox
typ
<code>
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Test
{
/// <summary>
/// Summary description for MyTextBox.
/// </summary>
public class MyTextBox:TextBox
{
public MyTextBox():base()
{
this.SetStyle(ControlStyles.UserPaint,true);
}
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush drawBrush = new SolidBrush(ForeColor); //Use the ForeColor property
// Draw string to screen.
e.Graphics.DrawString(Text, Font, drawBrush, 0f,0f); //Use the Font property
}
}
}
}
</code>
Och sen får du använda mytextbox istället för vanliga TextBoxar...
*****EDIT********
koden är testad och fungerar...Sv: Annan bakgrundsfärg på textBox
det kanske går att måla lite på den eftersom den iaf använder wm_paint till viss del , men textboxen ritar även från massa andra native events..
//RogerSv: Annan bakgrundsfärg på textBox
dock är det massa tjaffs om man gör samma sak om textboxen inte är disablad.
då blir det redigt lattjo om man har scrollbars och scrollar texten osv.
//RogerSv: Annan bakgrundsfärg på textBox
Det kanske är enklare att köra enabled = true...
Tack iallafall för visat intresse.