紫色喵 發表於 2019-11-7 15:07:00

(八十六)c#Winform自定义控件-表格优化-HZHControls

<p class="blogheaddes">出处:https://www.hzhcontrols.cn<br>原文:https://www.hzhcontrols.cn/blog-149.html<br>本文版权归www.hzhcontrols.cn所有<br>欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利</p>
<p>&nbsp;</p>
<div>
<h1>官网</h1>
<p>https://www.hzhcontrols.cn</p>
<h1>前提</h1>
<p>入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。</p>
<p>GitHub:https://github.com/kwwwvagaa/NetWinformControl</p>
<p>码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git</p>
<p>如果觉得写的还行,请点个 star 支持一下吧</p>
<p>欢迎前来交流探讨: 企鹅群568015492&nbsp;<img src="http://hzhcontrols.com/upload/image/20191107/1573109710975070.png"></p>
<p>来都来了,点个【推荐】再走吧,谢谢</p>
<h1>NuGet</h1>
<div class="cnblogs_code">
<pre>Install-Package&nbsp;HZH_Controls</pre>
</div>
<h1>目录</h1>
<p>http://www.hzhcontrols.com/blog-63.html</p>
<h1>用处及效果</h1>
<p>因为前面写的表格存在一些问题,本篇文章将对其优化处理,达到以下效果,支持自定义图片和按钮等自定义单元格</p>
<p><img src="http://hzhcontrols.com/upload/image/20191107/1573109710115216.png"></p>
<h1>准备工作</h1>
<p>优化是在原表格基础上做的处理,如果不了解可以移步查看一下</p>
<p>(三十二)c#Winform自定义控件-表格</p>
<h1>开始</h1>
<p>移除UCDataGridView中所有自适应高度相关的功能,移除分页控件</p>
<p>DataGridViewColumnEntity中添加自定义单元格属性</p>
<table class="syntaxhighlighterc#" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="c# spaces">&nbsp;&nbsp;</code><code class="c# color1">///&nbsp;&lt;summary&gt;</code></div>
<div class="line number2 index1 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# color1">///&nbsp;自定义的单元格控件,一个实现IDataGridViewCustomCell的Control</code></div>
<div class="line number3 index2 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# color1">///&nbsp;&lt;/summary&gt;</code></div>
<div class="line number4 index3 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# color1">///&nbsp;&lt;value&gt;The&nbsp;custom&nbsp;cell.&lt;/value&gt;</code></div>
<div class="line number5 index4 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">private</code>&nbsp;<code class="c# plain">Type&nbsp;customCellType&nbsp;=&nbsp;</code><code class="c# keyword">null</code><code class="c# plain">;</code></div>
<div class="line number6 index5 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">public</code>&nbsp;<code class="c# plain">Type&nbsp;CustomCellType</code></div>
<div class="line number7 index6 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number8 index7 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">get</code></div>
<div class="line number9 index8 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number10 index9 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">return</code>&nbsp;<code class="c# plain">customCellType;</code></div>
<div class="line number11 index10 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">}</code></div>
<div class="line number12 index11 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">set</code></div>
<div class="line number13 index12 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number14 index13 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">if</code>&nbsp;<code class="c# plain">(!</code><code class="c# keyword">typeof</code><code class="c# plain">(IDataGridViewCustomCell).IsAssignableFrom(value)&nbsp;||&nbsp;!value.IsSubclassOf(</code><code class="c# keyword">typeof</code><code class="c# plain">(System.Windows.Forms.Control)))</code></div>
<div class="line number15 index14 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">throw</code>&nbsp;<code class="c# keyword">new</code>&nbsp;<code class="c# plain">Exception(</code><code class="c# string">"行控件没有实现IDataGridViewCustomCell接口"</code><code class="c# plain">);</code></div>
<div class="line number16 index15 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">customCellType&nbsp;=&nbsp;value;</code></div>
<div class="line number17 index16 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">}</code></div>
<div class="line number18 index17 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
<h1>&nbsp;</h1>
<p>行控件绑定自定义行</p>
<p>&nbsp;</p>
<table class="syntaxhighlighterc#" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">if</code>&nbsp;<code class="c# plain">(item.CustomCellType&nbsp;==&nbsp;</code><code class="c# keyword">null</code><code class="c# plain">)</code></div>
<div class="line number2 index1 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number3 index2 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Label&nbsp;lbl&nbsp;=&nbsp;</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">Label();</code></div>
<div class="line number4 index3 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.Tag&nbsp;=&nbsp;i&nbsp;-&nbsp;(IsShowCheckBox&nbsp;?&nbsp;1&nbsp;:&nbsp;0);</code></div>
<div class="line number5 index4 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.Name&nbsp;=&nbsp;</code><code class="c# string">"lbl_"</code>&nbsp;<code class="c# plain">+&nbsp;item.DataField;</code></div>
<div class="line number6 index5 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.Font&nbsp;=&nbsp;</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">Font(</code><code class="c# string">"微软雅黑"</code><code class="c# plain">,&nbsp;12);</code></div>
<div class="line number7 index6 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.ForeColor&nbsp;=&nbsp;Color.Black;</code></div>
<div class="line number8 index7 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.AutoSize&nbsp;=&nbsp;</code><code class="c# keyword">false</code><code class="c# plain">;</code></div>
<div class="line number9 index8 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.Dock&nbsp;=&nbsp;DockStyle.Fill;</code></div>
<div class="line number10 index9 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.TextAlign&nbsp;=&nbsp;item.TextAlign;</code></div>
<div class="line number11 index10 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lbl.MouseDown&nbsp;+=&nbsp;(a,&nbsp;b)&nbsp;=&gt;</code></div>
<div class="line number12 index11 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number13 index12 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Item_MouseDown(a,&nbsp;b);</code></div>
<div class="line number14 index13 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">};</code></div>
<div class="line number15 index14 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">c&nbsp;=&nbsp;lbl;</code></div>
<div class="line number16 index15 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">}</code></div>
<div class="line number17 index16 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">else</code>&nbsp;</div>
<div class="line number18 index17 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number19 index18 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Control&nbsp;cc&nbsp;=&nbsp;(Control)Activator.CreateInstance(item.CustomCellType);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code></div>
<div class="line number20 index19 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">cc.Dock&nbsp;=&nbsp;DockStyle.Fill;</code></div>
<div class="line number21 index20 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">c&nbsp;=&nbsp;cc;</code></div>
<div class="line number22 index21 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">}</code></div>
</div>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>支持基本上就完成了全部的控制了,然后看下调用示例</p>
<table class="syntaxhighlighterc#" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="c# plain">List&lt;DataGridViewColumnEntity&gt;&nbsp;lstCulumns&nbsp;=&nbsp;</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">List&lt;DataGridViewColumnEntity&gt;();</code></div>
<div class="line number2 index1 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;Width&nbsp;=&nbsp;35,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Absolute,&nbsp;CustomCellType&nbsp;=&nbsp;</code><code class="c# keyword">typeof</code><code class="c# plain">(UCTestGridTable_CustomCellIcon)&nbsp;});</code></div>
<div class="line number3 index2 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;DataField&nbsp;=&nbsp;</code><code class="c# string">"ID"</code><code class="c# plain">,&nbsp;HeadText&nbsp;=&nbsp;</code><code class="c# string">"编号"</code><code class="c# plain">,&nbsp;Width&nbsp;=&nbsp;70,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Absolute&nbsp;});</code></div>
<div class="line number4 index3 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;DataField&nbsp;=&nbsp;</code><code class="c# string">"Name"</code><code class="c# plain">,&nbsp;HeadText&nbsp;=&nbsp;</code><code class="c# string">"姓名"</code><code class="c# plain">,&nbsp;Width&nbsp;=&nbsp;50,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Percent&nbsp;});</code></div>
<div class="line number5 index4 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;DataField&nbsp;=&nbsp;</code><code class="c# string">"Age"</code><code class="c# plain">,&nbsp;HeadText&nbsp;=&nbsp;</code><code class="c# string">"年龄"</code><code class="c# plain">,&nbsp;Width&nbsp;=&nbsp;50,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Percent&nbsp;});</code></div>
<div class="line number6 index5 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;DataField&nbsp;=&nbsp;</code><code class="c# string">"Birthday"</code><code class="c# plain">,&nbsp;HeadText&nbsp;=&nbsp;</code><code class="c# string">"生日"</code><code class="c# plain">,&nbsp;Width&nbsp;=&nbsp;50,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Percent,&nbsp;Format&nbsp;=&nbsp;(a)&nbsp;=&gt;&nbsp;{&nbsp;</code><code class="c# keyword">return</code>&nbsp;<code class="c# plain">((DateTime)a).ToString(</code><code class="c# string">"yyyy-MM-dd"</code><code class="c# plain">);&nbsp;}&nbsp;});</code></div>
<div class="line number7 index6 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;DataField&nbsp;=&nbsp;</code><code class="c# string">"Sex"</code><code class="c# plain">,&nbsp;HeadText&nbsp;=&nbsp;</code><code class="c# string">"性别"</code><code class="c# plain">,&nbsp;Width&nbsp;=&nbsp;50,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Percent,&nbsp;Format&nbsp;=&nbsp;(a)&nbsp;=&gt;&nbsp;{&nbsp;</code><code class="c# keyword">return</code>&nbsp;<code class="c# plain">((</code><code class="c# keyword">int</code><code class="c# plain">)a)&nbsp;==&nbsp;0&nbsp;?&nbsp;</code><code class="c# string">"女"</code>&nbsp;<code class="c# plain">:&nbsp;</code><code class="c# string">"男"</code><code class="c# plain">;&nbsp;}&nbsp;});</code></div>
<div class="line number8 index7 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstCulumns.Add(</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">DataGridViewColumnEntity()&nbsp;{&nbsp;Width&nbsp;=&nbsp;155,&nbsp;WidthType&nbsp;=&nbsp;SizeType.Absolute,CustomCellType=</code><code class="c# keyword">typeof</code><code class="c# plain">(UCTestGridTable_CustomCell)&nbsp;});</code></div>
<div class="line number9 index8 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">this</code><code class="c# plain">.ucDataGridView1.Columns&nbsp;=&nbsp;lstCulumns;</code></div>
<div class="line number10 index9 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">this</code><code class="c# plain">.ucDataGridView1.IsShowCheckBox&nbsp;=&nbsp;</code><code class="c# keyword">true</code><code class="c# plain">;</code></div>
<div class="line number11 index10 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">List&lt;</code><code class="c# keyword">object</code><code class="c# plain">&gt;&nbsp;lstSource&nbsp;=&nbsp;</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">List&lt;</code><code class="c# keyword">object</code><code class="c# plain">&gt;();</code></div>
<div class="line number12 index11 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">for</code>&nbsp;<code class="c# plain">(</code><code class="c# keyword">int</code>&nbsp;<code class="c# plain">i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;50;&nbsp;i++)</code></div>
<div class="line number13 index12 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number14 index13 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">TestGridModel&nbsp;model&nbsp;=&nbsp;</code><code class="c# keyword">new</code>&nbsp;<code class="c# plain">TestGridModel()</code></div>
<div class="line number15 index14 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">{</code></div>
<div class="line number16 index15 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">ID&nbsp;=&nbsp;i.ToString(),</code></div>
<div class="line number17 index16 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Age&nbsp;=&nbsp;3&nbsp;*&nbsp;i,</code></div>
<div class="line number18 index17 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Name&nbsp;=&nbsp;</code><code class="c# string">"姓名——"</code>&nbsp;<code class="c# plain">+&nbsp;i,</code></div>
<div class="line number19 index18 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Birthday&nbsp;=&nbsp;DateTime.Now.AddYears(-10),</code></div>
<div class="line number20 index19 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">Sex&nbsp;=&nbsp;i&nbsp;%&nbsp;2</code></div>
<div class="line number21 index20 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">};</code></div>
<div class="line number22 index21 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">lstSource.Add(model);</code></div>
<div class="line number23 index22 alt2"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# plain">}</code></div>
<div class="line number24 index23 alt1"><code class="c# spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="c# keyword">this</code><code class="c# plain">.ucDataGridView1.DataSource&nbsp;=&nbsp;lstSource;</code></div>
</div>
</td>
</tr>
</tbody>
</table>
<h1>最后的话</h1>
<p>如果你喜欢的话,请到&nbsp;https://gitee.com/kwwwvagaa/net_winform_custom_control&nbsp;点个星星吧</p>
</div>

</div>
<div id="MySignature" role="contentinfo">
    <div style="display: block" id="MySignature"><p style="background: rgb(230, 250, 230); padding: 10px 10px 10px 10px; border: 1px dashed rgb(224, 224, 224); font-family: 微软雅黑; font-size: 13px; text-indent: 0em">
作者:冰封一夏
<br>
出处:http://www.cnblogs.com/bfyx/
<br>
HZHControls官网:http://www.hzhcontrols.cn
<br>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,
<br>且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
<br>
GitHub:https://github.com/kwwwvagaa/NetWinformControl
<br>
码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
</p>
</div><br><br>
来源:https://www.cnblogs.com/bfyx/p/11812170.html
頁: [1]
查看完整版本: (八十六)c#Winform自定义控件-表格优化-HZHControls