Click here to Skip to main content
15,921,351 members
Home / Discussions / C#
   

C#

 
GeneralRe: set cursor position on control in active form Pin
baranils17-May-08 12:06
baranils17-May-08 12:06 
QuestionProgrmming with USB in C# (Need a book) Pin
hdv21217-May-08 10:50
hdv21217-May-08 10:50 
AnswerRe: Progrmming with USB in C# (Need a book) Pin
Christian Graus17-May-08 12:52
protectorChristian Graus17-May-08 12:52 
AnswerRe: Progrmming with USB in C# (Need a book) Pin
Giorgi Dalakishvili17-May-08 22:36
mentorGiorgi Dalakishvili17-May-08 22:36 
QuestionReportViewer Speed Pin
Amir Jalaly17-May-08 9:24
Amir Jalaly17-May-08 9:24 
QuestionTextRenderer.DrawText with TextFormatFlags.ModifyString Pin
Lea Hayes17-May-08 8:09
Lea Hayes17-May-08 8:09 
AnswerRe: TextRenderer.DrawText with TextFormatFlags.ModifyString Pin
Guffa17-May-08 11:37
Guffa17-May-08 11:37 
GeneralRe: TextRenderer.DrawText with TextFormatFlags.ModifyString Pin
Lea Hayes17-May-08 12:34
Lea Hayes17-May-08 12:34 
Hi,

The exception class is System.InvalidOperationException. The Graphics class is as provided by the paint event handler (this is the overriden method protected override void OnPaint(PaintEventArgs e)).

The font object is generated by:

Font activeFont = SystemFonts.DefaultFont;
if(series of conditions)
   activeFont = new Font(activeFont, FontStyle.Bold);
Here is the exception information:

System.InvalidOperationException was unhandled
Message="Object is currently in use elsewhere."
Source="System.Drawing"
StackTrace:
at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
at System.Drawing.Graphics.DrawLine(Pen pen, Single x1, Single y1, Single x2, Single y2)


Whilst the above suggests that the problem is related to the 'DrawLine' method, just simply removing the 'TextFormatFlags.ModifyString' flag prevents the crash from occurring.

For my particular application all I needed was a boolean value which indicates whether the output text was truncated or not. Whilst I have found a workaround for this (listed below), I am still interested to find out why this exception is being thrown...I have double-checked my code and I cannot understand how the objects are being used elsewhere because they are pretty much created each time the paint event is handled. The only things which are in common are the data item and the user control itself.

// Use text renderer to output required text.
if (extraLabelBounds.Width > 0)
    TextRenderer.DrawText(ctx.Graphics, itemLabel, activeFont, Rectangle.Round(extraLabelBounds), textColour, backgroundColor, TextFormatFlags.EndEllipsis);

// NOTE: Unfortunately the following is probably less efficient than with the alternative flag...

// Measure string both with and without end ellipsis to determine if string has overflown or not.
Size measuredA = TextRenderer.MeasureText(ctx.Graphics, itemLabel, activeFont);
Size measuredB = TextRenderer.MeasureText(ctx.Graphics, itemLabel, activeFont, Size.Round(extraLabelBounds.Size), TextFormatFlags.EndEllipsis);

// If label rendered label length is different to the actual item label then a
// tooltip will be made available.
bool hasOverflown = !measuredA.Equals(measuredB);


Thanks,
Lea Hayes
QuestionC# WebBrowser Pin
Member 428380717-May-08 7:32
Member 428380717-May-08 7:32 
AnswerRe: C# WebBrowser Pin
Ravi Bhavnani17-May-08 8:02
professionalRavi Bhavnani17-May-08 8:02 
QuestionHow connect forms with lines? Pin
Noemi Katinka17-May-08 6:43
Noemi Katinka17-May-08 6:43 
AnswerRe: How connect forms with lines? Pin
Anthony Mushrow17-May-08 6:53
professionalAnthony Mushrow17-May-08 6:53 
AnswerRe: How connect forms with lines? Pin
Thomas Stockwell18-May-08 3:56
professionalThomas Stockwell18-May-08 3:56 
Question[Message Deleted] Pin
pinna_hari17-May-08 4:55
pinna_hari17-May-08 4:55 
AnswerRe: String Problem [modified] Pin
PIEBALDconsult17-May-08 5:01
mvePIEBALDconsult17-May-08 5:01 
GeneralRe: String Problem Pin
pinna_hari18-May-08 23:15
pinna_hari18-May-08 23:15 
GeneralRe: String Problem Pin
DaveyM6918-May-08 23:33
professionalDaveyM6918-May-08 23:33 
AnswerRe: String Problem Pin
KennyPatel17-May-08 5:12
KennyPatel17-May-08 5:12 
AnswerRe: String Problem Pin
Ravi Bhavnani17-May-08 8:08
professionalRavi Bhavnani17-May-08 8:08 
QuestionWMI Help Pin
StevenWalsh17-May-08 4:48
StevenWalsh17-May-08 4:48 
AnswerRe: WMI Help Pin
Mircea Puiu17-May-08 21:15
Mircea Puiu17-May-08 21:15 
QuestionCorp a selection from Image? Pin
jamilkhan00717-May-08 4:47
jamilkhan00717-May-08 4:47 
AnswerRe: Corp a selection from Image? Pin
Anthony Mushrow17-May-08 7:03
professionalAnthony Mushrow17-May-08 7:03 
QuestionAddressbook from Outlook 2003 Pin
daniel9917-May-08 4:40
daniel9917-May-08 4:40 
Questionmy Dictionary removal code correct? Pin
George_George17-May-08 3:25
George_George17-May-08 3:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.