项目中遇到需要下拉框列表内容为线类型或点类型图形的需求,想到可以使用手绘线条和图形的方式来实现下拉列表内容自定义,记录下来供大家参考学习之用。

在项目中添加一个组件


添加完之后会显示如下设计界面

这里直接点击切换到代码视图即可

注意:新建的组件默认继承Component,我们这里是要自定义一个ComboBox下拉框,所以要继承自ComboBox,此类位于using System.Windows.Forms命名空间下

线的类型列表

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace CustomComponents
{/// <summary>/// 填充线型/// </summary>public partial class FillLineTypeCbo : ComboBox{public FillLineTypeCbo(){//初始化组件InitializeComponent();}public FillLineTypeCbo(IContainer container){container.Add(this);InitializeComponent();InitItems();}private void InitItems(){this.DrawMode = DrawMode.OwnerDrawFixed;//手动绘制所有元素this.DropDownStyle = ComboBoxStyle.DropDownList;//下拉框样式设置为不能编辑this.Items.Clear();//清空原有项 }public enum LineType{DoubleHorizontalLine = 0,//双横线VerticalLine,//垂直线LeftSlash,//左斜线RightSlash,//右斜线VerticalGridlines,//垂直网格线CrossGridlines,//交叉网格线SolidBrush,//实心刷HollowBrush,//空心刷}//protectedprotected override void OnDrawItem(DrawItemEventArgs e){if (e.Index >= 0)//判断是否需要重绘{int typeId = int.Parse(this.Items[e.Index].ToString());//获取选项idFont font = new Font("宋体", 9);//定义字体Rectangle rect = e.Bounds;//rect.Inflate(-2, -2);//缩放一定大小rect.Inflate(5, -2);//缩放一定大小Pen pen = null;SolidBrush solidBrush = new SolidBrush(Color.Black);float offSet = rect.Height / 2;float x = rect.Width / 10;float y = rect.Top + offSet;//如果设置成e.ItemHeigh*e.Index +offSet,则在选中节点后,由于Item位置固定,因此Item不能显示出来。switch (typeId){case (int)LineType.DoubleHorizontalLine:pen = new Pen(Color.Black, 1);e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(8 * x, y));//绘制水平线e.Graphics.DrawLine(pen, new PointF(x, y + 5), new PointF(8 * x, y + 5));//e.Graphics.DrawLine(pen, new PointF(x, y+2), new PointF(x, y+2));break;case (int)LineType.VerticalLine:pen = new Pen(Color.Black, 1);//绘制垂直线int xNum = 0;for (int i = 0; i < 10; i++){e.Graphics.DrawLine(pen, new PointF(x + xNum, y - 4), new PointF(1 * x + xNum, y + 6));xNum += 7;}break;case (int)LineType.LeftSlash:pen = new Pen(Color.Black, 1);//绘制左斜线int xNumLeftSlash = 0;for (int i = 0; i < 10; i++){e.Graphics.DrawLine(pen, new PointF(x + xNumLeftSlash, y - 4), new PointF(x + 5 + xNumLeftSlash, y + 7));xNumLeftSlash += 7;}break;case (int)LineType.RightSlash:pen = new Pen(Color.Black, 1);//绘制右斜线int xNumRightSlash = 0;for (int i = 0; i < 10; i++){e.Graphics.DrawLine(pen, new PointF(x + xNumRightSlash + 7, y - 4), new PointF(x + xNumRightSlash, y + 7));xNumRightSlash += 7;}break;case (int)LineType.VerticalGridlines:pen = new Pen(Color.Black, 1);//绘制垂直网格线xNum = 0;for (int i = 0; i < 10; i++)//绘制竖线{e.Graphics.DrawLine(pen, new PointF(x + xNum, y - 4), new PointF(1 * x + xNum, y + 6));xNum += 7;}//绘制双横线e.Graphics.DrawLine(pen, new PointF(x - 3, y - 2), new PointF(8 * x, y - 2));e.Graphics.DrawLine(pen, new PointF(x - 3, y + 5), new PointF(8 * x, y + 5));break;case (int)LineType.CrossGridlines:pen = new Pen(Color.Black, 1);//绘制交叉网格线//绘制左斜线xNumLeftSlash = 0;for (int i = 0; i < 10; i++){e.Graphics.DrawLine(pen, new PointF(x + xNumLeftSlash, y - 4), new PointF(x + 10 + xNumLeftSlash, y + 7));xNumLeftSlash += 7;}//绘制右斜线xNumRightSlash = 0;for (int i = 0; i < 10; i++){e.Graphics.DrawLine(pen, new PointF(x + xNumRightSlash + 10, y - 4), new PointF(x + xNumRightSlash, y + 7));xNumRightSlash += 7;}break;case (int)LineType.SolidBrush:pen = new Pen(Color.Black, 10);//绘制实心刷e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(8 * x, y));break;case (int)LineType.HollowBrush:pen = new Pen(Color.Black, 1);//绘制空心刷e.Graphics.DrawLine(pen, new PointF(x, y - 6), new PointF(x, y + 6));//左e.Graphics.DrawLine(pen, new PointF(x, y - 6), new PointF(8 * x, y - 6));//上e.Graphics.DrawLine(pen, new PointF(8 * x, y - 6), new PointF(8 * x, y + 6));//右e.Graphics.DrawLine(pen, new PointF(x, y + 6), new PointF(8 * x, y + 6));//下break;default:pen = new Pen(Color.Black, 1);break;}}}}
}

边框线类型列表

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace CustomComponents
{/// <summary>/// 线型/// </summary>public partial class LineShapeCbo : ComboBox{public LineShapeCbo(){InitializeComponent();}public LineShapeCbo(IContainer container){container.Add(this);InitializeComponent();InitItems();}private void InitItems(){this.DrawMode = DrawMode.OwnerDrawFixed;//手动绘制所有元素this.DropDownStyle = ComboBoxStyle.DropDownList;//下拉框样式设置为不能编辑this.Items.Clear();//清空原有项 }public enum LineType{SolidLine = 0,//实线LongDisconnection,//长间断线ShortEndLine,//短间端线LongAndShort,//长短相间ShortToLong,//长短短相间EmptyBrushes//空画笔}protected override void OnDrawItem(DrawItemEventArgs e){if (e.Index >= 0)//判断是否需要重绘{int typeId = int.Parse(this.Items[e.Index].ToString());//获取选项idFont font = new Font("宋体", 9);//定义字体Rectangle rect = e.Bounds;//rect.Inflate(-2, -2);//缩放一定大小rect.Inflate(5, -2);//缩放一定大小Pen pen = null;SolidBrush solidBrush = new SolidBrush(Color.Black);float offSet = rect.Height / 2;float x = rect.Width / 10;float y = rect.Top + offSet;//如果设置成e.ItemHeigh*e.Index +offSet,则在选中节点后,由于Item位置固定,因此Item不能显示出来。switch (typeId){case (int)LineType.SolidLine:pen = new Pen(Color.Black, 1);e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(8 * x, y));//绘制实线//e.Graphics.DrawLine(pen, new PointF(x, y+2), new PointF(x, y+2));break;case (int)LineType.LongDisconnection:pen = new Pen(Color.Black, 1);//绘制长间断线int xNum = 0;for (int i = 0; i < 3; i++){e.Graphics.DrawLine(pen, new PointF(x + xNum, y), new PointF(15+x + xNum, y));xNum += 20;}e.Graphics.DrawLine(pen, new PointF(x + xNum, y), new PointF(10 + x + xNum, y));break;case (int)LineType.ShortEndLine:pen = new Pen(Color.Black, 1);//绘制短间端线xNum = 0;for (int i = 0; i < 8; i++){e.Graphics.DrawLine(pen, new PointF(x + xNum, y), new PointF(6 + x + xNum, y));xNum += 9;}break;case (int)LineType.LongAndShort:pen = new Pen(Color.Black, 1);//绘制长短相间e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(x+10, y));e.Graphics.DrawLine(pen, new PointF(x+15, y), new PointF(x+20, y));e.Graphics.DrawLine(pen, new PointF(x+25, y), new PointF(x+35, y));e.Graphics.DrawLine(pen, new PointF(x+40, y), new PointF(x+45, y));e.Graphics.DrawLine(pen, new PointF(x+50, y), new PointF(x+60, y));e.Graphics.DrawLine(pen, new PointF(x+65, y), new PointF(x+70, y));break;case (int)LineType.ShortToLong:pen = new Pen(Color.Black, 1);//绘制长短短相间e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(x + 10, y));e.Graphics.DrawLine(pen, new PointF(x+15, y), new PointF(x + 18, y));e.Graphics.DrawLine(pen, new PointF(x+23, y), new PointF(x + 26, y));e.Graphics.DrawLine(pen, new PointF(x+31, y), new PointF(x + 41, y));e.Graphics.DrawLine(pen, new PointF(x + 46, y), new PointF(x + 49, y));e.Graphics.DrawLine(pen, new PointF(x + 54, y), new PointF(x + 57, y));e.Graphics.DrawLine(pen, new PointF(x + 62, y), new PointF(x + 70, y));break;case (int)LineType.EmptyBrushes:pen = new Pen(Color.Black, 1);//绘制空画笔break;//case (int)LineType.LineWithPoints:default:pen = new Pen(Color.Black, 1);break;}//if (e.Index < 9)//{//    e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(8 * x, y));//绘制线//    //Rectangle rectColor = new Rectangle(rect.Location, new Size(9 * (int)x, rect.Height));//    //e.Graphics.DrawRectangle(Pens.Black, rectColor);//绘制边框//}}}}
}

点类型列表

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace CustomComponents
{/// <summary>/// 点类型/// </summary>public partial class PointTypeCbo : ComboBox{public PointTypeCbo(){InitializeComponent();}public PointTypeCbo(IContainer container){container.Add(this);InitializeComponent();InitItems();}private void InitItems(){this.DrawMode = DrawMode.OwnerDrawFixed;//手动绘制所有元素this.DropDownStyle = ComboBoxStyle.DropDownList;//下拉框样式设置为不能编辑this.Items.Clear();//清空原有项 }protected override void OnDrawItem(DrawItemEventArgs e){if (e.Index >= 0)//判断是否需要重绘{int typeId = int.Parse(this.Items[e.Index].ToString());//获取选项idFont font = new Font("宋体", 9);//定义字体Rectangle rect = e.Bounds;//rect.Inflate(-2, -2);//缩放一定大小rect.Inflate(5, -2);//缩放一定大小Pen pen = null;SolidBrush solidBrush = new SolidBrush(Color.Black);float offSet = rect.Height / 2;float x = rect.Width / 10;float y = rect.Top + offSet;//如果设置成e.ItemHeigh*e.Index +offSet,则在选中节点后,由于Item位置固定,因此Item不能显示出来。switch (typeId){case 0:pen = new Pen(Color.Red, 1);//设置边框//SolidBrush sb0 = new SolidBrush(Color.Black);//设置填充颜色//绘制//e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(8 * x, y));//Graphics g = CreateGraphics();//Brush myBrush = new SolidBrush(Color.Green);//string str = "just for fun";//Font myFont = new Font("宋体", 9, FontStyle.Bold);//e.Graphics.DrawString(str, myFont, myBrush, 60, 20);          //e.Graphics.FillEllipse(sb0, 10 ,10 , 10, 10);e.Graphics.DrawEllipse(pen, 9, 5, 10, 10);break;case 1:pen = new Pen(Color.Red, 1);//绘制正方形e.Graphics.DrawLine(pen, new PointF(x, y - 5), new PointF(x, y + 5));//左e.Graphics.DrawLine(pen, new PointF(x, y - 5), new PointF(x + 10, y - 5));//上e.Graphics.DrawLine(pen, new PointF(x + 10, y - 5), new PointF(x + 10, y + 5));//右e.Graphics.DrawLine(pen, new PointF(x, y + 5), new PointF(x + 10, y + 5));//下//Rectangle rectColor = new Rectangle(rect.Location, new Size(10, 10));//e.Graphics.DrawRectangle(Pens.Black, rectColor);//绘制边框break;case 2:pen = new Pen(Color.Red, 1);//绘制十字形e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(x + 10, y));//横e.Graphics.DrawLine(pen, new PointF(x + 5, y - 5), new PointF(x + 5, y + 5));//竖break;case 3:pen = new Pen(Color.Red, 1);//绘制三角形e.Graphics.DrawLine(pen, new PointF(x, y + 5), new PointF(x + 5, y - 5));//左e.Graphics.DrawLine(pen, new PointF(x + 5, y - 5), new PointF(x + 10, y + 5));//右e.Graphics.DrawLine(pen, new PointF(x, y + 5), new PointF(x + 10, y + 5));//下break;case 4:pen = new Pen(Color.Red, 1);//绘制右(三角)红旗e.Graphics.DrawLine(pen, new PointF(x + 5, y + 5), new PointF(x + 5, y - 5));//竖杆e.Graphics.DrawLine(pen, new PointF(x + 5, y - 5), new PointF(x + 10, y));//红旗右边e.Graphics.DrawLine(pen, new PointF(x + 5, y), new PointF(x + 10, y));//红旗下边break;case 5:pen = new Pen(Color.Red, 1);//绘制左(三角)红旗 e.Graphics.DrawLine(pen, new PointF(x + 5, y + 5), new PointF(x + 5, y - 5));//竖杆e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(x + 5, y - 5));//红旗左边e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(x + 5, y));//红旗下边break;case 6:pen = new Pen(Color.Red, 1);//绘制右方旗e.Graphics.DrawLine(pen, new PointF(x + 5, y + 5), new PointF(x + 5, y - 5));//竖杆e.Graphics.DrawLine(pen, new PointF(x + 5, y - 5), new PointF(x + 10, y - 5));//右上边e.Graphics.DrawLine(pen, new PointF(x + 10, y - 5), new PointF(x + 10, y));//右右边e.Graphics.DrawLine(pen, new PointF(x + 5, y), new PointF(x + 10, y));//右下边break;case 7:pen = new Pen(Color.Red, 1);//绘制大圆包小圆//e.Graphics.DrawEllipse(pen, 20, 115, 10, 10);//空心大圆//e.Graphics.DrawEllipse(pen, 13, 118, 4, 4);//空心小圆 e.Graphics.DrawEllipse(pen, x, y - 5, 10, 10);//空心大圆e.Graphics.DrawEllipse(pen, x + 3, y - 5 + 3, 4, 4);//空心小圆//Rectangle rectColor = new Rectangle(rect.Location, new Size(9 * (int)x, rect.Height));//e.Graphics.DrawRectangle(Pens.Black, rectColor);//绘制边框break;case 8:pen = new Pen(Color.Red, 1);//绘制大圆加十字e.Graphics.DrawEllipse(pen, x, y - 5, 10, 10);//空心大圆//绘制十字形e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(x + 10, y));//横e.Graphics.DrawLine(pen, new PointF(x + 5, y - 5), new PointF(x + 5, y + 5));//竖break;case 9:pen = new Pen(Color.Red, 1);//绘制实心圆SolidBrush sb9 = new SolidBrush(Color.Green);//设置填充颜色e.Graphics.DrawEllipse(pen, x, y - 5, 10, 10);//实心圆边框e.Graphics.FillEllipse(sb9, x, y - 5, 10, 10);//实心圆填充break;case 10:pen = new Pen(Color.Red, 1);//绘制实心正方形//绘制正方形e.Graphics.DrawRectangle(pen, x, y - 5, 10, 10);SolidBrush sb10 = new SolidBrush(Color.Green);//设置填充颜色e.Graphics.FillRectangle(sb10, x, y - 5, 10, 10);break;case 11:pen = new Pen(Color.Red, 1);//绘制PointF p1 = new PointF(x + 5, y - 5);PointF p2 = new PointF(x, y + 5);PointF p3 = new PointF(x + 10, y + 5);PointF[] points = new PointF[3];Brush myBrush = new SolidBrush(Color.Green);points[0] = p1;points[1] = p2;points[2] = p3;e.Graphics.FillPolygon(myBrush, points, FillMode.Alternate);e.Graphics.DrawPolygon(pen, points);break;//case (int)LineType.LineWithPoints:default:pen = new Pen(Color.Black, 1);break;}if (e.Index < 12){//e.Graphics.DrawLine(pen, new PointF(x, y), new PointF(8 * x, y));//绘制线//设置后面的字符串Rectangle Rect = new Rectangle(rect.Location, new Size(5 * (int)x, rect.Height));//文本内容显示区域Rectangle textRect =new Rectangle(Rect.Right + 2, Rect.Y, e.Bounds.Width - Rect.Width, e.Bounds.Height - 2);//文本格式垂直居中StringFormat strFormat = new StringFormat();strFormat.LineAlignment = StringAlignment.Center;e.Graphics.DrawString((e.Index + 1).ToString(), new Font("微软雅黑", 12), Brushes.Black, textRect, strFormat);}}}}
}

带图片的列表

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace ShowState
{/// <summary>/// 下拉框  下拉列表 图片显示/// </summary>public partial class ComboBoxImg : ComboBox{public ComboBoxImg(){InitializeComponent();DrawMode = DrawMode.OwnerDrawFixed;DropDownStyle = ComboBoxStyle.DropDownList;ItemHeight = 50;Width = 40;}public ComboBoxImg(IContainer container){container.Add(this);InitializeComponent();DrawMode = DrawMode.OwnerDrawFixed;DropDownStyle = ComboBoxStyle.DropDownList;ItemHeight = 200;Width = 40;}protected override void OnDrawItem(DrawItemEventArgs e){if (Items.Count == 0 || e.Index == -1)return;if ((e.State & DrawItemState.Selected) != 0){//渐变画刷LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, Color.FromArgb(255, 251, 237),Color.FromArgb(255, 236, 181), LinearGradientMode.Vertical);//填充区域Rectangle borderRect = new Rectangle(3, e.Bounds.Y, e.Bounds.Width - 5, e.Bounds.Height - 2);e.Graphics.FillRectangle(brush, borderRect);//画边框Pen pen = new Pen(Color.FromArgb(229, 195, 101));e.Graphics.DrawRectangle(pen, borderRect);}else{SolidBrush brush = new SolidBrush(Color.FromArgb(255, 255, 255));e.Graphics.FillRectangle(brush, e.Bounds);}//获得项图片,绘制图片ItemEx item = (ItemEx)Items[e.Index];Image img = item.Image;//图片绘制的区域Rectangle imgRect = new Rectangle(6, e.Bounds.Y + 3, 45, 45);e.Graphics.DrawImage(img, imgRect);//文本内容显示区域Rectangle textRect =new Rectangle(imgRect.Right + 2, imgRect.Y, e.Bounds.Width - imgRect.Width, e.Bounds.Height - 2);//获得项文本内容,绘制文本String itemText = Items[e.Index].ToString();//文本格式垂直居中StringFormat strFormat = new StringFormat();strFormat.LineAlignment = StringAlignment.Center;e.Graphics.DrawString(itemText, new Font("微软雅黑", 12), Brushes.Black, textRect, strFormat);base.OnDrawItem(e);}}/// <summary>/// 下拉框  下拉列表 图片显示/// </summary>public class ItemEx{/// <summary>/// 图片显示/// </summary>/// <param name="text">文本</param>/// <param name="img">图片(图片路径)</param>public ItemEx(string text, Image img){Text = text;Image = img;}public string Text { get; set; }public Image Image { get; set; }public override string ToString(){return Text;}}
}

组件编写完之后,进入工具箱,就能看到当前项目中我们自定义的组件了,使用方法跟普通控件方法完全相同,直接拖到窗体即可

winform 下拉框(自定义下拉框控件)相关推荐

  1. C#学习笔记(20140911)-下拉框、日历、pannel控件的使用

    晚上学习了下拉框.日历.pannel控件的使用,这几个控件看上去好像没有之前的一些控件那么简单,但是使用起来还是很方便.使用完了后,才发现真的和之前的几种控件差不多. 最了一个小小的模块:每日签到填写 ...

  2. MFC学习--下拉框、列表、树控件、选项卡

    下拉框.列表.树控件.选项卡 下拉框 属性 代码操作 列表控件 属性 代码操作 树控件 属性 代码操作 选项卡 属性 代码操作 文化建设 下拉框 属性 Data: 下拉可选项,用分号分隔( ; ) T ...

  3. php css下划线,如何自定义下划线的样式

    下划线可以通过设置border-bottom以及background-image的值来自定义下划线的样式 下划线一般在文本中是一条黑色的直线,那么如何改变下划线的样式呢?接下来在文章中将为大家详细介绍 ...

  4. 关于讯飞语音听写RecognizerDialog 去除这个弹框view中的任何控件 更改其中内容

    | | | 上面这是讯飞语音听写sdk的听写弹框下面两张是自己项目中改的 我发现他sdk的assets下的iflytek 中的recognize.xml 里面虽然是乱码 但是可以看到的一些东西是此倾听 ...

  5. MVC3学习第十三章 佟掌柜第二弹——MVC3下利用陕北吴旗娃的分页控件实现数据分页...

    本章学习内容 1.了解陕北吴旗娃的Mvc分页控件 2.利用分页控件实现MVC3下的商品分页 3.利用分页控件实现MVC3下一个页面多个分页以及ajax分页效果 1.了解陕北吴旗娃的Mvc分页控件 在w ...

  6. [转载]WebForm下使用 jQuery.loadUserControl异步load用户控件

    现在做网站都追求用户体验,那么ajax自然就必不可少.如果您用过Asp.Net MVC ,你会发现Asp.Net MVC 和jQuery 配合的非常默契(事实上jQuery已经成了微软的御用脚本库了) ...

  7. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)...

    VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...

  8. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

    VB6.0中,DTPicker日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值(解决方案) 参考文章: (1)VB6.0中,DTPicker日期.时间控件不允许为空时,采用文本框与日 ...

  9. 继承QWidget使用QPainter自定义二维图形控件【Qt学习】

    继承QWidget使用QPainter自定义二维图形控件[Qt学习] 通过阅读该文章,将了解本文所说的二维图形控件的基本概念.为何要自定义二维图形控件.如何自定义二维图形控件. 该文章将首先进行一些书 ...

  10. 自定义窗体设计器-控件测试

    自定义窗体设计器-控件测试 基于.net2的自定义窗体设计器控件(类似visual studio的vb,c#设计器,其实就是vs2005的设计器) 控件由四部分组成:工具栏,工具箱,绘图设计区,属性框 ...

最新文章

  1. PyTorch 笔记(10)— Tensor 与 NumPy 相互转换、两种共享内存以及两者的广播法则
  2. 【原】开源——基于文件驱动的站点开发
  3. 鄂维南院士:科学与智能——机器学习的新前沿、应用数学时代的曙光
  4. 【Android】java.lang.AssertionError use looper thread, must call Looper.prepare() first!异常分析
  5. 【LeetCode】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化
  6. 前端学习(3146):react-hello-react之getDenvied
  7. SpringBoot,用200行代码完成一个一二级分布式缓存
  8. 实例1.1:通过HWND获得CWnd指针
  9. php整么去掉时间的年月日,php强大的时间转换函数strtotime
  10. 使用event.keyCode来判断是否为数字
  11. db2v9/9.5高级应用开发_使用 Vue.js 2.0 开发单页应用
  12. 阅读《http权威指南》
  13. Easy AR初级开发教程
  14. 2013年最新热门软件分享第一季
  15. 用cmd命令行在windows系统中进行分区操作
  16. uos已连接网络但无法访问互联网
  17. cad文字递增快捷键_CAD文字/表格递增复制怎么用,快捷键是什么?
  18. 带有图形界面的通用趋势
  19. Unity 使用UnityWebRequest问题小结
  20. maven的settings配置文件详解

热门文章

  1. 【计算智能】读书笔记 第六章节 粒子群优化算法
  2. Linux版原型工具,Justproto:Linux下Axure的替代方案
  3. 《LSTM神经网络和双色球预测例子》
  4. 【Go语言实战】(8) Go语言并发爬虫
  5. 基于NSGA2算法的多AGV柔性车间调度多目标优化【附python源码】
  6. Unity编辑器扩展——自动生成UI界面脚本
  7. 带你入门学习Rxjava--上手教程
  8. c++中的fork函数_fork函数
  9. comsol电磁仿真入门
  10. xcode9 symbolicatecrash文件位置