如何根据自己输入的行跟列生成一个矩形的小输入框
时间: 2024-10-09 10:04:20 浏览: 31
在Windows Forms应用程序中,你可以使用`TextBox`控件来创建一个矩形的小输入框。以下是如何根据输入的行数和列数动态生成这些小输入框的简单示例:
```csharp
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
private TextBox[] textBoxes;
private int rows, columns;
public Form1()
{
InitializeComponent();
GenerateInputFields(rows, columns);
}
private void GenerateInputFields(int numRows, int numColumns)
{
// 清空原有的textBoxes数组
if (textBoxes != null)
{
for (int i = 0; i < textBoxes.Length; i++)
Controls.Remove(textBoxes[i]);
textBoxes = null;
}
rows = numRows;
columns = numColumns;
// 创建并添加textBoxes
textBoxes = new TextBox[numRows * numColumns];
for (int y = 0; y < numRows; y++)
{
for (int x = 0; x < numColumns; x++)
{
TextBox textBox = new TextBox
{
Size = new Size(50, 20), // 设置每个文本框的尺寸
Location = new Point(x * 60, y * 30) // 假设单元格间距为60x30像素
};
textBox.Name = "TextBox_" + (y * numColumns + x + 1); // 给每个文本框命名
this.Controls.Add(textBox);
textBoxes[y * numColumns + x] = textBox;
}
}
}
// 当你需要改变行数或列数时调用这个方法
public void UpdateGridSize(int newRows, int newColumns)
{
GenerateInputFields(newRows, newColumns);
}
// 事件处理(例如,当所有文本框失去焦点)
private void TextBox_TextChanged(object sender, EventArgs e)
{
// 这里可以处理文本框内容的变化
}
}
```
在这个例子中,`Form1`包含一个`GenerateInputFields`方法,用于根据指定的行和列数量创建并添加`TextBox`到窗体上。`UpdateGridSize`方法可以在任何时候更改网格大小。
阅读全文