Problem when changing button font at runtime

  • Thread starter Thread starter Olivier Gaumond
  • Start date Start date
O

Olivier Gaumond

I create a simple Windows Forms application and drop a simple button
on the form with the designer. I define the Text of the button (i.e.
"Button test") and I set the button width so I have plenty of space to
display the text (i.e. 120). Then I add the following code in the
button's click handler.

private void button1_Click(object sender, System.EventArgs e)
{
button1.Font = new Font(FontFamily.GenericSansSerif, 10,
FontStyle.Bold);
}

When I click the button, the button's text is displayed with the new
Font but the last letter (t) is truncated and not displayed properly.
I can't isolate exactly the conditions in which this behavior is
produced but the above conditions produce the bug. The complete code
is below.

Any ideas on this? A bug in the button code? Any way to avoid this?

Olivier

---
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace WindowsApplication1
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(16, 24);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(120, 24);
this.button1.TabIndex = 7;
this.button1.Text = "Button test";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(216, 110);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}

private void button1_Click(object sender, System.EventArgs e)
{
button1.Font = new Font(FontFamily.GenericSansSerif, 10,
FontStyle.Bold);
}
}
}
 
* (e-mail address removed) (Olivier Gaumond) scripsit:
I create a simple Windows Forms application and drop a simple button
on the form with the designer. I define the Text of the button (i.e.
"Button test") and I set the button width so I have plenty of space to
display the text (i.e. 120). Then I add the following code in the
button's click handler.

private void button1_Click(object sender, System.EventArgs e)
{
button1.Font = new Font(FontFamily.GenericSansSerif, 10,
FontStyle.Bold);
}

When I click the button, the button's text is displayed with the new
Font but the last letter (t) is truncated and not displayed properly.
I can't isolate exactly the conditions in which this behavior is
produced but the above conditions produce the bug. The complete code
is below.

I am able to repro that on Windows XP Pro + .NET 1.1. Seems to be a
bug.

--
Herfried K. Wagner
MVP · VB Classic, VB.NET
<http://www.mvps.org/dotnet>

<http://www.plig.net/nnq/nquote.html>
 
Anybody has an idea of the proper way to report such bugs to Microsoft??

Olivier
 
If you don't see them respond to this thread post again with BUG in the
subject.

Or call support.

-Eric
 
Back
Top