C# TableLayoutPanel 要设置行列,然后把每行每列的大小设置成一样的,该怎么弄?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# TableLayoutPanel 要设置行列,然后把每行每列的大小设置成一样的,该怎么弄?相关的知识,希望对你有一定的参考价值。
就像这样,行列的数值是不确定的,游戏有一个自定义,里面可以设置行列,主要问下怎么把每行每列的大小设成一样的(自动的),另外,form1的大小是可以变得
你把行和列设置成百分比,而不是固定数值就可以了 参考技术A 在代码里面直接给panel的属性赋值就行了追问哪个属性?怎么赋值?能给一个例子吗?谢了
参考技术B 设置行宽和行高 就可以了,可以设置它们的比例和具体尺寸追问这样吗,但是结果是这样的
form拉大了后是这样的
你把每个按钮 的DOCK属性设置为Fill
追问恩,设置过了,在creatBotton里面有设置过
追答你这种情况应该是 Row和Column的百分比没有设置正确 应该每行都要设置33.33%,每列都要33.33%
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.31332F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.34334F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.34334F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
我上面用了foreach()了啊,应该把每行和没列都设置过了的,我放弃这个容器了,改用flowlayoutpanel了
追答this.tableLayoutPanel1 的Dock属性设置了 Fill吗?
C#导出涉及行列合并的复杂的Excel数据
一、导出数据格式
二、实现代码
1 public ActionResult ExportFundDataToExcel(Guid taskid, string taskname) 2 { 3 var dt = ProjectFundCalculateService.getFundDataTabe(taskid); 4 if (null == dt) 5 { 6 return Fail("当前任务没有要导出的经费数据"); 7 } 8 if (dt.Rows.Count < 1) 9 { 10 return Fail("当前任务没有要导出的经费数据"); 11 } 12 var fileHtml = new StringBuilder(); 13 fileHtml.Append("<table border=\"1\" style=\"table-layout:fixed;\" cellspacing=‘0‘ cellpadding=‘0‘>"); 14 fileHtml.Append("<tr>"); 15 fileHtml.Append("<td colspan=\"10\" style=\"font-size: 16px; font-family: 宋体; text-align: center; height: 30px;\">"); 16 fileHtml.AppendFormat(" <strong> {0}经费概算</strong>", taskname); 17 fileHtml.Append("</td>"); 18 fileHtml.Append(" </tr>"); 19 fileHtml.Append("<tr>"); 20 fileHtml.Append(" <td colspan=\"10\" style=\"font-size: 16px; text-align: center; height: 30px;\">"); 21 fileHtml.Append(" 计费依据:四川省物价局、四川省财政厅《关于调整环境监测服务收费标准的函》(川价函〔2007〕6号)附件“四川省环境监测服务收费标准”。"); 22 fileHtml.Append(" </td>"); 23 fileHtml.Append(" </tr>"); 24 fileHtml.Append(" <tr>"); 25 fileHtml.Append(" <td colspan=\"8\"></td>"); 26 fileHtml.Append(" <td colspan=\"2\" style=\"text-align: center;font-size: 12px;\">单位:元</td>"); 27 fileHtml.Append(" </tr>"); 28 fileHtml.Append("<tr>"); 29 for (int i = 0; i < dt.Columns.Count; i++) 30 { 31 fileHtml.AppendFormat("<td>{0}</td>", dt.Columns[i].ColumnName); 32 } 33 fileHtml.Append(" </tr>"); 34 int rowspan = 1;//要合并的列数 35 string flag = "";//rowspan="$flag"的初始值,后面用rowspan替换 36 for (var j = 0; j < dt.Rows.Count; j++) 37 { 38 fileHtml.Append("<tr>"); 39 if (dt.Rows[j][0].ToString() == "小计" || dt.Rows[j][0].ToString() == "监测费用合计" || dt.Rows[j][0].ToString() == "总计") 40 { 41 fileHtml.AppendFormat("<td colspan=\"2\" style=\"text-align: center;\">{0}</td>", dt.Rows[j][0]); 42 var sumtotal = dt.Rows[j][2].ToString(); 43 if (dt.Rows[j][0].ToString() == "总计") 44 { 45 sumtotal = new EcanRMB().CmycurD(sumtotal) + "(¥" + sumtotal + "元)"; 46 } 47 fileHtml.AppendFormat("<td colspan=\"8\" style=\"text-align: center;\"><strong>{0}</strong></td>", sumtotal); 48 } 49 else if (dt.Rows[j][0].ToString() == "报告编制费" || dt.Rows[j][0].ToString() == "车船费") 50 { 51 fileHtml.AppendFormat("<td colspan=\"2\" style=\"text-align: center;\">{0}</td>", dt.Rows[j][0]); 52 fileHtml.AppendFormat("<td colspan=\"7\" style=\"text-align: center;\">{0}</td>", dt.Rows[j][2]); 53 fileHtml.AppendFormat("<td style=\"text-align: center;\"><strong>{0}</strong></td>", dt.Rows[j][dt.Columns.Count - 1]); 54 } 55 else if (dt.Rows[j][1].ToString() == "人工费") 56 { 57 58 rowspan++; 59 //人工费第一列默认合并 60 fileHtml.AppendFormat("<td style=\"text-align: center;\">{0}</td>", dt.Rows[j][1]); 61 fileHtml.AppendFormat("<td colspan=\"7\" style=\"text-align: center;\">{0}</td>", dt.Rows[j][2]); 62 fileHtml.AppendFormat("<td style=\"text-align: center;\">{0}</td>", dt.Rows[j][dt.Columns.Count - 1]); 63 64 fileHtml.Replace("$" + flag, rowspan.ToString()); 65 rowspan = 1; 66 flag = ""; 67 68 } 69 else 70 { 71 if (j > 0) 72 { 73 //如果当前列与上一列的值相等则合并,否则初始化rowspan和flag 74 if (dt.Rows[j][0].ToString() == dt.Rows[j - 1][0].ToString()) 75 { 76 rowspan++; 77 } 78 else 79 { 80 fileHtml.Replace("$" + flag, rowspan.ToString()); 81 if (rowspan > 1) 82 { 83 rowspan = 1; 84 flag = ""; 85 } 86 } 87 } 88 for (var k = 0; k < dt.Columns.Count; k++) 89 { 90 if (k == 0 && rowspan == 1) 91 { 92 flag = dt.Rows[j][0].ToString(); 93 fileHtml.AppendFormat("<td rowspan=\"${0}\" style=\"text-align: center;\">{1}</td>", flag, dt.Rows[j][k]); 94 } 95 else if (k == 0 && rowspan > 1) 96 { 97 fileHtml.Append(""); 98 } 99 else 100 { 101 fileHtml.AppendFormat("<td style=\"text-align: center;\">{1}</td>", j, dt.Rows[j][k]); 102 } 103 } 104 105 } 106 fileHtml.Append("</tr>"); 107 108 } 109 fileHtml.Append("</table>"); 110 byte[] fileContents = Encoding.Default.GetBytes(fileHtml.ToString()); 111 return File(fileContents, "application/ms-excel", taskname + ".xls"); 112 113 }
以上是关于C# TableLayoutPanel 要设置行列,然后把每行每列的大小设置成一样的,该怎么弄?的主要内容,如果未能解决你的问题,请参考以下文章
c# tableLayoutPanel 合并单元格后出来多余的线怎么处理