Tag: tablelayoutpanel

删除TableLayoutPanel中的特定行

我有TableLayoutPanel,我以编程方式添加Rows。 用户基本上选择了一个属性,然后将其与一些控件一起显示在表中。 我想我在这里有一个普遍的理解问题,我会尝试解释它。 每行中的一个控件是“删除”按钮。 该按钮应该删除它所在的行。我所做的是向按钮添加一个事件处理程序并设置当前的rowcount。 deleteTalent.Click += (sender, e) => buttonClickHandler(numberOfRows); 处理程序代码: private void buttonClickHandler(int rowCount) { int count = rowCount – 1; for (int i = count; i < (count + 5); i++) { balanceTable.Controls.RemoveAt(count); } balanceTable.RowStyles.RemoveAt(count); balanceTable.RowCount–; } 我看了好几个小时,玩了一遍。 但我找不到一个干净利落的解决方案。 我也是C#的新手 这是创建新行的完整函数: private void addBalanceItems(ToolStripMenuItem item) { int numberOfRows = balanceTable.RowCount; if (numberOfRows […]

在TableLayoutPanel中动态添加行

我想在c#中的Windows窗体中的TableLayoutPanel中逐行动态添加这些条目 我怎样才能做到这一点?

查找添加到TableLayoutPanel的控件的行索引

将控件添加到Windows窗体中的TableLayoutPanel时,我需要执行操作。 我正在处理控件的ParentChanged事件,以确定控件是否已添加到父级(此处为TableLayoutPanel),但我收到的索引为-1。 TableLayoutPanel t; private void button1_Click(object sender, EventArgs e) { // this.Text = tableLayoutPanel1.Height.ToString(); t = new TableLayoutPanel(); t.Dock = DockStyle.Fill; //t.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; t.AutoSize = true; //t.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; t.RowStyles.Add(new RowStyle(SizeType.AutoSize)); t.RowStyles.Add(new RowStyle(SizeType.AutoSize)); t.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); t.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); panel1.Controls.Add(t); t.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; Label lbl = new Label(); lbl.ParentChanged += new EventHandler(lbl_ParentChanged); lbl.Margin […]

TableLayoutPanel GetCellPosition和GetPositionFromControl,它们有什么不同?

这似乎是一个陈腐的问题,但我发现有关这些方法的Microsoft文档没有任何细节。 TablelLayoutPanel.GetCellPosition(Control control)和TableLayoutPanel.GetPositionFromControl(Control control)什么区别? 我正在使用.NET Framework 4

如何动态设置TableLayoutPanel中的单元格颜色?

我需要编写一个函数,它将根据运行程序期间的某些条件设置TableLayoutPanel单元格中的颜色。 TableLayoutPanel除以16×16。 程序开始时有一些条件。 如果某个单元格的条件为真,则此出售必须涂成蓝色。 例如: private void start_Click(object sender, EventArgs e) { foreach (string str in some_list) { if (some condition) { set_color_in_cell at row[i] colum[j] //(what shoud i use here?) } } } 我找到了这样的例子: private void tableLayoutPanel_CellPaint(object sender, TableLayoutCellPaintEventArgs e) { if (e.Row == 0 && e.Column == 1) { e.Graphics.FillRectangle(new SolidBrush(Color.Black), e.CellBounds); } […]

以编程方式更改行/列范围(tablelayoutpanel)

我有一个tablelayoutpanel。 2×2 – 2列2行。 例如,我在第1行第二列中添加了一个按钮button1 。 button1的dock属性设置为Fill。 VS Designer允许设置button1的列/行范围属性。 我希望可用性以编程方式更改button1的行跨度属性,因此它可以填充所有第二列(1行和第2行)和可用性以将其设置回来。 怎么样?

使用TableLayoutPanel的可扩展列(来自代码)

我正在尝试使3列TableLayoutPanel的中间列可扩展。 我从代码而不是设计师那里做的一切都是学习练习。 中间列有一个文本框,左右列各有一个按钮: 从截图中可以看出,第二列尚未展开。 我遵循https://stackoverflow.com/a/22283690/492336的建议 – 我将TextBox控件的Dock设置为Fill,并将面板的Dock设置为Fill: var panel = new TableLayoutPanel(); panel.RowCount = 1; panel.ColumnCount = 3; panel.Controls.Add(new Button()); panel.Controls.Add(new TextBox()); panel.Controls.Add(new Button()); panel.Controls[0].Text = “Button1”; panel.Controls[2].Text = “Button2”; panel.Controls[1].Dock = DockStyle.Fill; panel.Dock = DockStyle.Fill; 我还通过将列设置为AutoSize来尝试https://stackoverflow.com/a/7279996/492336中的建议: panel.ColumnStyles.Clear(); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); 但这也没有效果。 我在这做错了什么?

TableLayoutPanel大小调整

我可能没有使用正确的控件来满足我的需求。 我正在填充一个带控件的表,我希望每列自动调整其中包含的控件的大小。 例如,一列文本框将比一列复选框宽。 由于不同操作系统的复杂性,不同的DPI,不同的字体等,我不想摆弄测量是否可以帮助它。桌子可以水平扩展以适应控件,带有滚动条。 如何通过TableLayoutPanel或其他控件实现这一点? 谢谢。 编辑添加代码: private void UpdateLocations() { tableLayoutPanel1.RowCount = CurrentSchedule.location.Length + 1; tableLayoutPanel1.ColumnCount = 7; int row = 1; int timeWidth = TextRenderer.MeasureText(“00:00:00x”, tableLayoutPanel1.Font).Width; Label lab = new Label(); lab.Text = “Location”; tableLayoutPanel1.Controls.Add(lab, 0, 0); lab = new Label(); lab.Text = “Arrive”; tableLayoutPanel1.Controls.Add(lab, 1, 0); lab = new Label(); lab.Text = […]

如何避免c#.net中TableLayoutPanel中的闪烁

我使用TableLayoutPanel进行出勤标记。 我在TableLayoutPanel中添加了控件(Panel和Label)并为它们创建了事件。 在某些情况下,我已经清除了所有控件,并继续将相同的控件绑定在TableLayoutPanel的不同位置。 在重新绑定控件时,TableLayoutPanel会在初始化时闪烁并且速度太慢。

表格布局面板滚动条

给定一个包含2列和多行的表布局面板,如何将滚动条附加到它上面,因为它有时会比表单的大小增长得多。 谢谢