Fondamentalmente sto affrontando un problema con la rimozione del padding/margine tra i controlli in un tablelayoutpanel.C# tablelayoutpanel impossibile rimuovere padding/margin
Ho impostato il margine tablelayoutpanel e il padding su 0. Cellborderstyle è nessuno.
I controlli aggiunti sono tutti impostati su 0 per margine e riempimento.
Eppure quel misterioso margine continua ad apparire. Qualsiasi aiuto?
Provato questo 2 soluzioni qui e varie altre sul web, ma nessuno potrebbe rimuovere quella spaziatura in mezzo.
Remove spacing between cells in tablelayoutpanel in Windows form?
Is there any way to control thickness of cell border in TableLayoutPanel?
Running on VS2010, .net 4,5
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Multiply {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
LoadBoard(10, 10);
}
private void LoadBoard(int col, int row) {
board.ColumnCount = col;
board.RowCount = row;
board.BorderStyle = BorderStyle.FixedSingle;
float colSize = 100f/col;
float rowSize = 100f/row;
board.ColumnStyles[0].SizeType = SizeType.Percent;
board.ColumnStyles[0].Width = colSize;
board.RowStyles[0].SizeType = SizeType.Percent;
board.RowStyles[0].Height = rowSize;
for (int x = 0; x < col; x++)
board.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, colSize));
for (int x = 0; x < row; x++) {
board.RowStyles.Add(new RowStyle(SizeType.Percent, rowSize));
for (int y = 0; y < col; y++) {
board.Controls.Add(CreateButton(x + "," + y), y, x);
}
Console.WriteLine(x);
}
}
private Button CreateButton(string text) {
Button a = new Button();
a.Text = text;
a.Dock = DockStyle.Fill;
a.Margin = new Padding(0);
a.Padding = new Padding(0);
return a;
}
}
}
Desi GNER
namespace Multiply {
partial class Form1 {
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) {
if (disposing && (components != null)) {
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.board = new System.Windows.Forms.TableLayoutPanel();
this.SuspendLayout();
//
// board
//
this.board.ColumnCount = 1;
this.board.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.board.Dock = System.Windows.Forms.DockStyle.Top;
this.board.Location = new System.Drawing.Point(0, 0);
this.board.Margin = new System.Windows.Forms.Padding(0);
this.board.Name = "board";
this.board.RowCount = 1;
this.board.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.board.Size = new System.Drawing.Size(368, 223);
this.board.TabIndex = 0;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(368, 391);
this.Controls.Add(this.board);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel board;
}
}
Grazie! Questo ha funzionato bene. – Tim