private Label getKeyLabel(String key)
{
Label newLabel = new Label();
Boolean isText = true;
if (!key.Equals("+"))
{
newLabel.BackColor = System.Drawing.Color.White;
newLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
switch (key)
{
case "UP":
newLabel.Image = global::ACPAddIn.Properties.Resources.up;
isText = false;
break;
case "DOWN":
newLabel.Image = global::ACPAddIn.Properties.Resources.down;
isText = false;
break;
case "LEFT":
newLabel.Image = global::ACPAddIn.Properties.Resources.left;
isText = false;
break;
case "RIGHT":
newLabel.Image = global::ACPAddIn.Properties.Resources.right;
isText = false;
break;
case "COMMA":
newLabel.Text = "<";
break;
case "PERIOD":
newLabel.Text = ">";
break;
default:
newLabel.Text = key;
break;
}
int width=22;
if (isText)
{
Graphics g = newLabel.CreateGraphics();
width = (int)g.MeasureString(newLabel.Text, newLabel.Font).Width;
g.Dispose();
width += 5;
}
// Make the label a square if the width is too small
if (width < 26)
{
width = 26;
}
newLabel.Size = new System.Drawing.Size(width, 26);
newLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
}
else
{
newLabel.Size = new System.Drawing.Size(10, 26);
newLabel.Text = key;
newLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
}
return newLabel;
}