2015-09-05 5 views
6

असल में मुझे टेबललेआउट पैनेल में नियंत्रण के बीच पैडिंग/मार्जिन को हटाने में समस्या का सामना करना पड़ रहा है।सी # टेबललेआउट पैनेल पैडिंग/मार्जिन को हटाने में असमर्थ

मैंने टेबललेआउट पैनेल मार्जिन और पैडिंग 0 पर सेट किया है सेलबॉर्डरस्टाइल कोई नहीं है।

जोड़ा गया नियंत्रण मार्जिन और पैडिंग के लिए 0 पर सेट हो गया है।

फिर भी रहस्यमय मार्जिन दिखाई देता है। कोई मदद?

वेब पर इस 2 समाधानों और अन्य कई प्रयासों का प्रयास किया लेकिन कोई भी उस अंतर को बीच में नहीं हटा सकता था।

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; 
    } 
} 
} 

देसी 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; 
    } 
} 

उत्तर

3

आप गलत समस्या का पीछा करते हुए कर रहे हैं, इस अंतर बटन नियंत्रण, नहीं TableLayoutPanel के कारण होता है। डिज़ाइनर के साथ फ़ॉर्म पर बटन छोड़ते समय आप स्पष्ट रूप से कुछ देख सकते हैं, चयन आयताकार और बटन सतह के बीच का अंतर नोट करें।

आपको इससे छुटकारा पाने के लिए बटन के साथ टिंकर करना होगा या किसी भिन्न प्रकार के नियंत्रण का उपयोग करना होगा।

private Control CreateButton(string text) { 
     var a = new Button(); 
     a.FlatStyle = FlatStyle.Flat; 
     a.FlatAppearance.BorderSize = 0; // optional 
     // etc... 
    } 

BorderSize काम निकालें अगर आप एक ग्रिड देखना चाहते हैं: सबसे आसान तरीका यह फ्लैट बनाने के लिए है।

+0

धन्यवाद! यह सुनिश्चित है कि ठीक काम किया। – Tim

0

मैं TableLayoutPanel

में विभिन्न नियंत्रण का उपयोग करते समय इस

  1. जाओ गुणों पर देखें डिजाइन करने के लिए
  2. क्लिक करें
  3. गोटो कॉलम कर सकते हैं, जब आप पाठ क्लिक करें एक ही समस्या का सामना करना पड़ा कॉलम के अलावा बॉक्स, टेक्स्टबॉक्स में चरम दाएं बटन पर एक बटन (...) दिखाई देता है, इसे
  4. एक पॉप अप विंडो दिखाई देती है, ऑटोसाइज का चयन करें (इसके बजाय पूर्ण या प्रतिशत)।
  5. Show: में उसी विंडो में Rows का चयन करें और फिर ऑटोसाइज का चयन करें।
  6. ठीक क्लिक करें और आप कर चुके हैं।
संबंधित मुद्दे