当前位置: 首页 > news >正文

百度联盟怎么做网站建设中网站源码

百度联盟怎么做网站,建设中网站源码,湘潭网站建设 磐石网络擅长,承包网站开发功能说明 使用ListView时#xff0c;希望可以在单元格显示图片或其他控件#xff0c;发现原生的ListView不支持#xff0c;于是通过拓展#xff0c;实现ListView可以显示任意控件的功能#xff0c;效果如下#xff1a; 实现方法 本来想着在单元格里面实现控件的自绘的…功能说明 使用ListView时希望可以在单元格显示图片或其他控件发现原生的ListView不支持于是通过拓展实现ListView可以显示任意控件的功能效果如下 实现方法 本来想着在单元格里面实现控件的自绘的但是没找到办法最后是通过在单元格的表面显示对应控件的浮于表面达到目的。 实现要点如下 ListView需要设置OwnerDrawtrue并重载自绘函数OnDrawColumnHeader、OnDrawItem、OnDrawSubItem支持按单元格添加对应的控件其Parent设置为列表ListView列表界面调整后包括大小、列表头、滚动等需重新绘制单元格的控件 实现源码 using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace MyListView.Ui {#region ListViewExpublic class ListViewEx : ListView{#region 内部属性/// summary/// 存放单元格控件/// /summaryListControl _CellControls new ListControl();/// summary/// 界面是否发生变化/// /summarybool IsViewChanged { get; set; }#endregion#region 方法/// summary/// 构造函数/// /summarypublic ListViewEx(){#region 初始化#endregion#region 事件this.ColumnReordered ColumnWidthChangedHandler;this.ColumnWidthChanged ColumnWidthChangedHandler;#endregion}/// summary/// 添加控件/// /summary/// typeparam nameT/typeparam/// param namerow/param/// param namecol/param/// param namec/param/// returns/returnspublic T AddT(int row, int col, T c) where T : Control{if(row this.Items.Count || col this.Columns.Count){return null;}var index (row * this.Columns.Count) col;for (var i _CellControls.Count; i index; i){_CellControls.Add(null);}var oc _CellControls[index];if (oc ! null){oc.Dispose();}OwnerDraw true;IsViewChanged true;c.Parent this;_CellControls[index] c;return c;}/// summary/// 设置行高度/// /summary/// param nameheight/parampublic void SetItemHeight(int height){if(this.SmallImageList null){this.SmallImageList new ImageList();}this.SmallImageList.ImageSize new Size(1, height);}#endregion#region 内部函数void ColumnWidthChangedHandler(object s, EventArgs e){IsViewChanged true;}/// summary/// 显示控件到目标单元格/// /summary/// param namec/param/// param nameitem/paramvoid ShowCellControl(Control c, ListViewItem.ListViewSubItem item){int margin 2;c.Text item.Text;c.Visible true;c.Bounds new Rectangle(item.Bounds.X margin,item.Bounds.Top margin,item.Bounds.Width - 2 * margin,item.Bounds.Height - 2 * margin);}/// summary/// 显示单元格控件/// /summary/// param namee/param/// returns/returnsControl GetCellControl(DrawListViewSubItemEventArgs e){Control c null;#region 获取控件var index (e.ItemIndex * this.Columns.Count) e.ColumnIndex;if (index _CellControls.Count){return null;}c _CellControls[index];#endregionreturn c;}protected override void WndProc(ref Message m){#region 事件定义const int WM_SIZE 0x0005;const int WM_PAINT 0x000F;const int WM_HSCROLL 0x114;const int WM_VSCROLL 0x115;const int WM_MOUSEWHEEL 0x020A;#endregion#region 重绘显示控件if (m.Msg WM_PAINT IsViewChanged){if(this.Columns.Count 0){for (var i 0; i _CellControls.Count; i){var cell_control _CellControls[i];if (cell_control null){continue;}cell_control.Visible false;var row i / this.Columns.Count;var col i % this.Columns.Count;if(row Items.Count || col this.Columns.Count){continue;}var item this.Items[row];if(item.Bounds.Y 0 || item.Bounds.Y this.Height){continue;}if(item.SubItems[col].Bounds.X 0 || item.SubItems[col].Bounds.X this.Width){continue;}ShowCellControl(cell_control, item.SubItems[col]);}IsViewChanged false;}}else if(m.Msg WM_HSCROLL || m.Msg WM_VSCROLL || m.Msg WM_MOUSEWHEEL || m.Msg WM_SIZE){IsViewChanged true;}#endregionbase.WndProc(ref m);}protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e){e.DrawDefault true;}protected override void OnDrawItem(DrawListViewItemEventArgs e){// 已经在OnDrawSubItem处理过了// e.DrawText(TextFormatFlags.Default);}protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e){if(GetCellControl(e) ! null){return;}else{e.DrawDefault true;}}#endregion}#endregion }测试代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace MyListView {public partial class Form1 : Form{#region 函数public Form1(){#region 布局初始化InitializeComponent();var lv new Ui.ListViewEx(){Dock DockStyle.Fill,View View.Details,GridLines true,};this.Controls.Add(lv);var headers new string[] { 序号, 名称, 年龄, 住址, 荣誉, 岗位, 头像 };foreach(var v in headers){lv.Columns.Add(v, 100, HorizontalAlignment.Center);}lv.SetItemHeight(40);for(var i0; i50; i){var lvi lv.Items.Add($数据{i 1});for(var j1; jlv.Columns.Count; j){lvi.SubItems.Add($数据{i 1}-{j});switch(j){case 1:lv.Add(i, j, new Label());break;case 2:lv.Add(i, j, new Button());break;case 3:lv.Add(i, j, new TextBox(){Font new Font(宋体, 18)});break;case 4:lv.Add(i, j, new ComboBox(){Font new Font(宋体, 18)});break;case 6:{var pic lv.Add(i, j, new PictureBox());pic.Image LoadImage($logo{i%7}.jpg);pic.SizeMode PictureBoxSizeMode.StretchImage;}break;}}}#endregion}Image LoadImage(string name){var file Path.GetFullPath(Path.Combine(..\..\Data\IMG, name));if(!File.Exists(file)){return null;}return Image.FromFile(file);}#endregion} }
http://www.dnsts.com.cn/news/208799.html

相关文章:

  • 苏格网站建设国外学校网站模板
  • 做相亲网站需要什么流程苏州网站制作好的公司
  • 免费发帖网站大全手机app是怎么开发出来的
  • 做装修网站价格站长工具使用
  • 做3d效果图有什么好网站平面设计师证书
  • 阳东网站seo张家口城乡建设局网站
  • 网站 数据库 模板说出网站建设流程
  • 雅虎网站提交入口yy怎么一直在模板相关信息圆柱钢模板优势是什么?企业网站建设模板和定制化有什么区别呢?拼命加载中
  • 网站建设 电脑 手机大屏网页设计网站
  • 重庆网站seo建设哪家好企业网站管理系统设计与实现
  • 手机网站js电话悬浮邯郸做小程序公司
  • 网站备案信息核验单填写网站中怎么做视频直播
  • 无锡本地模板网站建设产品江苏联运建设有限公司网站
  • 哪些网站是503错误代码手机网站弹出提示框
  • asp网站例子wordpress视觉编辑器
  • 网站制作的核心要点是什么3322免费域名注册
  • 上海市建设协会网站做网站老板不发工资我拿尾款
  • 淘宝上买的网站模板怎么建设网站建筑公司企业信用分在哪里查
  • 大庆小程序制作网站排名优化电话
  • 厦门百度搜索网站排名网站二级导航制作
  • 网站开发与运维面试问题wordpress搭建影视站
  • 意见反馈的网站怎么做一 网站建设总体目标
  • 受欢迎的锦州网站建设开发一套软件app
  • 做网站手机适配需要加价吗成都哪里好玩好吃
  • 有域名就可以做网站么包头公司注册
  • php网站开发 薪资 东莞wordpress 中文摘要
  • 苏州seo网站公司河北省城乡和建设厅网站首页
  • 成品网站管理系统 源码wordpress上传主题失败
  • 做网站的软件公司深圳网站建设索q.479185700
  • 自动化产品的网站建设建设互联网地方垂直网站