110,532
社区成员
发帖
与我相关
我的任务
分享
public class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void txtLevel_TextChanged(object sender, EventArgs e)
{
int rowHeight = (int)(pnlDisplay.Font.Size * 4 / 3 * 1.3); //1.3倍行距,字体大小(磅)与像素的关系为3/4
Graphics g = pnlDisplay.CreateGraphics();
Brush brush = new SolidBrush(Color.Black);
g.Clear(pnlDisplay.BackColor); //清除原有图像
int level;
//判断是否为数字,且介于1-18之间
if (int.TryParse(txtLevel.Text, out level) && level > 0 && level < 19)
{
//循环处理每行
for (int i = 0; i < level; i++)
{
//获取每行文本
StringBuilder line = new StringBuilder();
for (int j = 0; j <= i; j++)
{
if (j != 0) line.Append(i < 9 ? " " : " ");
line.Append(i + 1);
}
g.DrawString(line.ToString(), pnlDisplay.Font, brush, (Width - TextRenderer.MeasureText(line.ToString(), pnlDisplay.Font).Width) / 2, rowHeight * i);
}
}
g.Dispose();
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.panel1 = new System.Windows.Forms.Panel();
this.txtLevel = new System.Windows.Forms.TextBox();
this.pnlDisplay = new System.Windows.Forms.Panel();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Controls.Add(this.txtLevel);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(384, 78);
this.panel1.TabIndex = 0;
//
// txtLevel
//
this.txtLevel.Location = new System.Drawing.Point(125, 42);
this.txtLevel.Name = "txtLevel";
this.txtLevel.Size = new System.Drawing.Size(100, 21);
this.txtLevel.TabIndex = 0;
this.txtLevel.TextChanged += new System.EventHandler(this.txtLevel_TextChanged);
//
// pnlDisplay
//
this.pnlDisplay.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.pnlDisplay.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlDisplay.Location = new System.Drawing.Point(0, 78);
this.pnlDisplay.Name = "pnlDisplay";
this.pnlDisplay.Size = new System.Drawing.Size(384, 284);
this.pnlDisplay.TabIndex = 1;
this.pnlDisplay.Resize += new System.EventHandler(this.txtLevel_TextChanged);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(384, 362);
this.Controls.Add(this.pnlDisplay);
this.Controls.Add(this.panel1);
this.Name = "Form1";
this.Text = "数字三角";
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.TextBox txtLevel;
private System.Windows.Forms.Panel pnlDisplay;
}
int value = 18;
int maxValueLength = value.ToString().Length;
string space = string.Empty.PadLeft(maxValueLength);
for (var i = 1; i <= value; i++)
{
var n = string.Join(space, Enumerable.Repeat(i.ToString().PadLeft(maxValueLength/*, '0'*/), i));
Console.WriteLine(n.PadLeft((value + i) * maxValueLength));
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
richTextBox1.Clear();
if (textBox1.Text == string.Empty) return;
var n = Convert.ToInt32(textBox1.Text);
for (var i = 1; i <= n; i++)
{
for (var j = 0; j < i; j++)
{
if(i<10) richTextBox1.AppendText(String.Format("{0,2} ", i));
else richTextBox1.AppendText(String.Format(" {0,2}", i));
}
richTextBox1.AppendText(Environment.NewLine);
}
richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
}