2012-02-22 10 views
16

में दो कक्षों को मर्ज कैसे करें मेरे पास दो पंक्तियां और दो कॉलम हैं। मैं चाहता हूं कि दोनों कक्षों का अंतिम स्तंभ एक में विलीन हो। आवश्यकता के कारण मैं अन्य डिज़ाइन विकल्पों का उपयोग नहीं करता हूं, दो टेबललेआउट्स जिनमें पहले टेबल लेआउट में दो पंक्तियां हैं। मैं Winforms को C# में उपयोग कर रहा हूं।टेबल लेआउट

|      |     | 
|      |     | 
|      |     | 
|_______________________|     | 
|      |     | 
|      |     | 
|      |     | 
+0

कौन सा टेबल (वर्ग) प्रयोग कर रहे हैं? –

+0

आपने सी # टैग का इस्तेमाल किया था। सी # के साथ क्या करना है? मैं समझ नहीं सका। आप यह कहां करना चाहते हैं? – sinanakyazici

+1

मैं यूआई डिज़ाइन करना चाहता हूं जिसमें मैं Winforms में TableLayout का उपयोग करता हूं –

उत्तर

0

सेल में नियंत्रण की रोस्पेन संपत्ति सेट करें जो तालिका में विलय शुरू कर देगी। यानी 3 के रोस्पैन के नियंत्रण में उसके सेल और नीचे 2 कोशिकाएं होंगी।

कॉलमस्पैन दाएं से विलय करने के लिए।

कोड में, SetRowSpan और/या SetColumnSpan विधि को कॉल करें।

6

यहाँ कैसे ColumnSpan/RowSpan संपत्ति की स्थापना के बजाय कोड

//create a label control, add it to the tableLayoutPanel, and merge it into 3 cells. 
Label lbl = new Label(); 
lbl.Location = new Point(0, 0); 
lbl.Text = "This is a test label"; 
MyTableLayoutPanel.Controls.Add(lbl, 0,0); //start it in cell 0,0 
MyTableLayoutPanel.SetColumnSpan(lbl, 3); //merge 3 columns 
1

में यह करने के लिए है, तो आप एक और TableLayoutPanel की कोशिका के भीतर एक TableLayoutPanel जोड़ सकते हैं। दो कोशिकाओं को विलय करने के बजाय, आप दो कोशिकाओं को विभाजित कर रहे हैं। उदाहरण में आप अपने प्रश्न में प्रदान करते हैं, दाएं कॉलम को एक पंक्ति में विलय करने के बजाय, बाएं कॉलम को दो पंक्तियों में विभाजित किया जाएगा।

यह विधि केवल फायदेमंद है यदि आप CellBorderStyle संपत्ति को "None" के अलावा किसी अन्य चीज़ पर सेट करने की योजना बना रहे हैं। मुझे यह जवाब here मिला, जहां CSharpFreak एक अन्य विधि भी सुझाता है, जिसे मैंने कोशिश नहीं की थी।

0

आप इस तरह के नियंत्रण के लिए "विलय" गुण सेट कर सकते हैं:

मान लीजिए कि नियंत्रण एक Label है करता है और आपके पंक्तियों मर्ज करना चाहते हैं, तो आप यह निम्नलिखित के रूप में कर सकते हैं:

TableLayoutPanel table = new TableLayoutPanel(); 

Label lbl = new Label(); 
lbl.Text = "test"; 
lbl.Dock = DockStyle.Fill; 

table.Controls.Add(lbl, 0, 0); //initial position 
table.SetRowSpan(lbl,2); 
0

निम्नलिखित कोड आप पंक्तियों की वांछित संख्या भर में एक नियंत्रण अवधि के लिए अनुमति चाहिए/स्तंभों

TableLayoutPanel tableLayoutPanel1 = new TableLayoutPanel(); // not required if you already have the control added else where or in designer. 
TextBox textBox1 = new TextBox(); // not required if you already have the control added else where or in designer. 
tableLayoutPanel1.Controls.Add(textBox1);// not required if you already have the control added else where or in designer. 
tableLayoutPanel1.SetColumnSpan(textBox1, 2); 
tableLayoutPanel1.SetRowSpan(textBox1, 2); 
13
  1. प्रपत्र डिजाइनर में एक सेल में किसी भी नियंत्रण रखो
  2. नियंत्रण का चयन करें और अपने गुणों को देखना
  3. "ColumnSpan" इस मूल्य के लिए "लेआउट" में संपत्ति अनुभाग
  4. इनपुट वांछित स्तंभ अवधि का पता लगाएं

देखें उदाहरण के लिए चित्र:

enter image description here