Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: WinForm
Hi Friends,
 
I have a text box in the windows form. Is there any way to add new property to that text box. The property like mandatory attributes are True and False. If set property Mandatory true .. the text box will show one red astrerik image.
Can i do like this....
Posted 27-Dec-12 20:45pm
Comments
Sergey Alexandrovich Kryukov at 28-Dec-12 1:49am
   
What did you try?
—SA
Sergey Alexandrovich Kryukov at 28-Dec-12 1:55am
   
What did you try so far?
Not clear what exactly do you want to achieve. How a property is related to attributes? (Probably you don't mean .NET attributes, but something else.) Anyway, I told you how to add a property, you think how to use it. Or ask a follow-up question, but try to be more clear then so far.
—SA
Sergey Alexandrovich Kryukov at 28-Dec-12 2:04am
   
Ah, I got it. Please see my updated answer. Problem completely solved.
—SA
Sergey Alexandrovich Kryukov at 28-Dec-12 2:07am
   
You confused me with your term "attributes". Remember, "Attribute" is a very certain and special thing in .NET, a way to pass additional metadata which can be read by Reflection. Learn about them; this is important stuff.
Good luck,
—SA
rajugknr at 28-Dec-12 2:12am
   
Thanks
Sergey Alexandrovich Kryukov at 28-Dec-12 2:14am
   
You are welcome. Are you thinking to accept the answer formally (green button)?
—SA

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

This control is nothing but a class, not a sealed one. So, naturally, you can create a derived class and add any property you want, as well as any other member:
class MyTextBox : System.Windows.Forms.TextBox {
    string MyNewProperty { get; set; }
    // ...
} // class MyTextBox
 
[EDIT]
 
Now, with your Mandatory you really need fully-fledged property features, such as the setter:
 
class MyTextBox : System.Windows.Forms.TextBox {
    internal bool Mandatory {
        get { return mandatory; }
        set {
            if (value == mandatory) return;
            mandatory = value;
            Invalidate(); // important step; that's why you need property
        }
    }
    bool mandatory;
    protected override void OnPaint(PaintEventArgs eventArgs) {
        base.OnPaint(eventArgs);
        if (mandatory) {
            RenderItOneWay(eventArgs.Graphics);
        } else {
            RenderItAnotherWay(eventArgs.Graphics);
        }
    }
    // ...
} // class MyTextBox
 
Got the idea?
 
—SA
  Permalink  
v6

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 400
1 Jochen Arndt 200
2 Richard MacCutchan 135
3 DamithSL 95
4 Maciej Los 95
0 OriginalGriff 6,045
1 DamithSL 4,601
2 Maciej Los 4,032
3 Kornfeld Eliyahu Peter 3,480
4 Sergey Alexandrovich Kryukov 3,220


Advertise | Privacy | Mobile
Web04 | 2.8.141220.1 | Last Updated 28 Dec 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100