c# - WinForms 动态矩阵新表单带按钮
问题描述
所以我设法在一个新表单中创建了一个动态的文本框数组,下面有一个按钮,但是该按钮与屏幕截图中的一些文本框重叠:
我想为数组添加边距和填充,以便按钮位于数组下方这是生成数组的代码:
int LinhaText = frmDim.linhas;
int ColunText = frmDim.colunas;
const int TEXTBOX_WIDTH = 30;
const int TEXTBOX_HEIGHT = 30;
const int SPACING = 0;
List<List<TextBox>> textboxes = new List<List<TextBox>>();
private void Form2_Load(object sender, EventArgs e)
{
for (int row = 0; row < LinhaText; row++)
{
List<TextBox> newRow = new List<TextBox>();
textboxes.Add(newRow);
for (int col = 0; col < ColunText; col++)
{
TextBox newbox = new TextBox();
newbox.Width = TEXTBOX_WIDTH;
newbox.Height = TEXTBOX_HEIGHT;
newbox.Top = (row * (TEXTBOX_HEIGHT + SPACING)) + SPACING;
newbox.Left = (col * (TEXTBOX_WIDTH + SPACING)) + SPACING;
newRow.Add(newbox);
this.Controls.Add(newbox);
}
}
}
数组的生成工作得很好。
解决方案
如果你只想要一个简单的解决方案,试试这个:
private void Form1_Load(object sender, EventArgs e)
{
Panel p = new Panel(); // added code
for (int row = 0; row < LinhaText; row++)
{
List<TextBox> newRow = new List<TextBox>();
textboxes.Add(newRow);
for (int col = 0; col < ColunText; col++)
{
TextBox newbox = new TextBox();
newbox.Width = TEXTBOX_WIDTH;
newbox.Height = TEXTBOX_HEIGHT;
newbox.Top = (row * (TEXTBOX_HEIGHT + SPACING)) + SPACING;
newbox.Left = (col * (TEXTBOX_WIDTH + SPACING)) + SPACING;
newRow.Add(newbox);
p.Controls.Add(newbox); // modified code (added textboxes to panel rather than form)
}
}
// added code
p.Dock = DockStyle.Fill;
this.Controls.Add(p);
this.Controls.SetChildIndex(p, 0);
Button b1 = new Button();
b1.Text = "hi";
b1.Dock = DockStyle.Bottom;
this.Controls.Add(b1);
this.Controls.SetChildIndex(b1, 1);
}
推荐阅读
- python - dependency_overrides 不会覆盖依赖项
- javascript - 如何从函数返回值-CodeceptJS
- azure - Azure 数据工厂 V2 多个环境,如 SSIS
- php - 如何使用 Angular.js 从表中删除多行?
- ios - 如果我们在后台点击任何地方,除了在 swift 中点击 popView 之外,如何删除 popView
- tomcat - Apache tomcat 如何创建指向 url 的链接
- algorithm - Lua(trAInsported):尝试实现波前算法,不工作
- sql-server - 如何将捕获的 SQL 探查器“exec sp_executesql”映射到 sql server 中的存储过程名称
- javascript - 提取正则表达式名称的一部分
- oracle - 从 plsql 代码重定向到新选项卡中的 url