(十一)C# Winform自定义控件-列表
proginn468312
共 22471字,需浏览 45分钟
· 2020-08-10
准备工作
列表控件将被拆分为2部分,一个元素,一个列表,列表需要支持主副标题,图标等
开始
首先定义一个数据源类(其实更好的是应该接受object,然后通过绑定字段反射绑定数据,这样就不需要这个数据源类了,这里偷懒了)
///
/// 列表实体
///
[Serializable]
public class ListEntity
{
///
/// 编码,唯一值
///
public string ID { get; set; }
///
/// 大标题
///
public string Title { get; set; }
///
/// 右侧更多按钮
///
public bool ShowMoreBtn { get; set; }
///
/// 右侧副标题
///
public string Title2 { get; set; }
///
/// 关联的数据源
///
public object Source { get; set; }
}
我们创建元素控件,添加一个用户控件,命名UCListItemExt
需要提供一下属性
[Description("标题"), Category("自定义")]
public string Title
{
get { return label1.Text; }
set { label1.Text = value; }
}
[Description("副标题"), Category("自定义")]
public string Title2
{
get { return label3.Text; }
set
{
label3.Text = value;
label3.Visible = !string.IsNullOrEmpty(value);
}
}
[Description("标题字体"), Category("自定义")]
public Font TitleFont
{
get { return label1.Font; }
set
{
label1.Font = value;
}
}
[Description("副标题字体"), Category("自定义")]
public Font Title2Font
{
get { return label3.Font; }
set
{
label3.Font = value;
}
}
[Description("背景色"), Category("自定义")]
public Color ItemBackColor
{
get { return this.BackColor; }
set
{
this.BackColor = value;
}
}
[Description("标题文本色"), Category("自定义")]
public Color ItemForeColor
{
get { return label1.ForeColor; }
set { label1.ForeColor = value; }
}
[Description("副标题文本色"), Category("自定义")]
public Color ItemForeColor2
{
get { return label3.ForeColor; }
set { label3.ForeColor = value; }
}
[Description("是否显示右侧更多箭头"), Category("自定义")]
public bool ShowMoreBtn
{
get { return label2.Visible; }
set { label2.Visible = value; ; }
}
[Description("项选中事件"), Category("自定义")]
public event EventHandler ItemClick;
///
/// 数据源
///
public ListEntity DataSource { get; private set; }
开放一个对外的设置数据源入口
#region 设置数据
///
/// 功能描述:设置数据
/// 作 者:HZH
/// 创建日期:2019-02-27 11:52:52
/// 任务编号:POS
///
/// data
public void SetData(ListEntity data)
{
this.Title = data.Title;
this.Title2 = data.Title2;
this.ShowMoreBtn = data.ShowMoreBtn;
DataSource = data;
}
#endregion
再处理一下点击事件
private void item_MouseDown(object sender, MouseEventArgs e)
{
if (ItemClick != null)
{
ItemClick(this, e);
}
}
至此功能完成,看下完整代码
// 版权所有 黄正辉 交流群:568015492 QQ:623128629
// 文件名称:UCListItemExt.cs
// 创建日期:2019-08-15 16:01:34
// 功能描述:List
// 项目地址:https://gitee.com/kwwwvagaa/net_winform_custom_control
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace HZH_Controls.Controls
{
[ToolboxItem(false)]
public partial class UCListItemExt : UserControl
{
[Description("标题"), Category("自定义")]
public string Title
{
get { return label1.Text; }
set { label1.Text = value; }
}
[Description("副标题"), Category("自定义")]
public string Title2
{
get { return label3.Text; }
set
{
label3.Text = value;
label3.Visible = !string.IsNullOrEmpty(value);
}
}
[Description("标题字体"), Category("自定义")]
public Font TitleFont
{
get { return label1.Font; }
set
{
label1.Font = value;
}
}
[Description("副标题字体"), Category("自定义")]
public Font Title2Font
{
get { return label3.Font; }
set
{
label3.Font = value;
}
}
[Description("背景色"), Category("自定义")]
public Color ItemBackColor
{
get { return this.BackColor; }
set
{
this.BackColor = value;
}
}
[Description("标题文本色"), Category("自定义")]
public Color ItemForeColor
{
get { return label1.ForeColor; }
set { label1.ForeColor = value; }
}
[Description("副标题文本色"), Category("自定义")]
public Color ItemForeColor2
{
get { return label3.ForeColor; }
set { label3.ForeColor = value; }
}
[Description("是否显示右侧更多箭头"), Category("自定义")]
public bool ShowMoreBtn
{
get { return label2.Visible; }
set { label2.Visible = value; ; }
}
[Description("项选中事件"), Category("自定义")]
public event EventHandler ItemClick;
///
/// 数据源
///
public ListEntity DataSource { get; private set; }
public UCListItemExt()
{
InitializeComponent();
SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
this.UpdateStyles();
}
private void item_MouseDown(object sender, MouseEventArgs e)
{
if (ItemClick != null)
{
ItemClick(this, e);
}
}
#region 设置数据
///
/// 功能描述:设置数据
/// 作 者:HZH
/// 创建日期:2019-02-27 11:52:52
/// 任务编号:POS
///
/// data
public void SetData(ListEntity data)
{
this.Title = data.Title;
this.Title2 = data.Title2;
this.ShowMoreBtn = data.ShowMoreBtn;
DataSource = data;
}
#endregion
}
}
namespace HZH_Controls.Controls
{
partial class UCListItemExt
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
///
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UCListItemExt));
this.label1 = new System.Windows.Forms.Label();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.label3 = new System.Windows.Forms.Label();
this.splitLine_H1 = new HZH_Controls.Controls.UCSplitLine_H();
this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(15, 0, 0, 0);
this.label1.Size = new System.Drawing.Size(173, 48);
this.label1.TabIndex = 0;
this.label1.Text = "label1";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.item_MouseDown);
//
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "setting_arrow.png");
//
// label3
//
this.label3.Dock = System.Windows.Forms.DockStyle.Right;
this.label3.Font = new System.Drawing.Font("微软雅黑", 14F);
this.label3.ForeColor = System.Drawing.Color.FromArgb(73, 119, 232);
this.label3.Location = new System.Drawing.Point(173, 0);
this.label3.Name = "label3";
this.label3.Padding = new System.Windows.Forms.Padding(15, 0, 0, 0);
this.label3.Size = new System.Drawing.Size(139, 48);
this.label3.TabIndex = 2;
this.label3.Text = "label3";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.item_MouseDown);
//
// splitLine_H1
//
this.splitLine_H1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238)))));
this.splitLine_H1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.splitLine_H1.Location = new System.Drawing.Point(0, 48);
this.splitLine_H1.MaximumSize = new System.Drawing.Size(0, 1);
this.splitLine_H1.Name = "splitLine_H1";
this.splitLine_H1.Size = new System.Drawing.Size(355, 1);
this.splitLine_H1.TabIndex = 3;
//
// label2
//
this.label2.Dock = System.Windows.Forms.DockStyle.Right;
this.label2.ImageIndex = 0;
this.label2.ImageList = this.imageList1;
this.label2.Location = new System.Drawing.Point(312, 0);
this.label2.Name = "label2";
this.label2.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0);
this.label2.Size = new System.Drawing.Size(43, 48);
this.label2.TabIndex = 1;
this.label2.Visible = false;
this.label2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.item_MouseDown);
//
// UCListItemExt
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.label1);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.splitLine_H1);
this.Name = "UCListItemExt";
this.Size = new System.Drawing.Size(355, 49);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ImageList imageList1;
private System.Windows.Forms.Label label3;
private UCSplitLine_H splitLine_H1;
}
}
设计样式如下
接着我们需要创建列表控件,添加用户控件,命名UCListExt
看下需要哪些属性
private Font _titleFont = new Font("微软雅黑", 15F);
[Description("标题字体"), Category("自定义")]
public Font TitleFont
{
get { return _titleFont; }
set { _titleFont = value; }
}
private Font _title2Font = new Font("微软雅黑", 14F);
[Description("副标题字体"), Category("自定义")]
public Font Title2Font
{
get { return _title2Font; }
set { _title2Font = value; }
}
private Color _itemBackColor = Color.White;
[Description("标题背景色"), Category("自定义")]
public Color ItemBackColor
{
get { return _itemBackColor; }
set { _itemBackColor = value; }
}
private Color _itemSelectedBackColor = Color.FromArgb(73, 119, 232);
[Description("标题选中背景色"), Category("自定义")]
public Color ItemSelectedBackColor
{
get { return _itemSelectedBackColor; }
set { _itemSelectedBackColor = value; }
}
private Color _itemForeColor = Color.Black;
[Description("标题文本色"), Category("自定义")]
public Color ItemForeColor
{
get { return _itemForeColor; }
set { _itemForeColor = value; }
}
private Color _itemSelectedForeColor = Color.White;
[Description("标题选中文本色"), Category("自定义")]
public Color ItemSelectedForeColor
{
get { return _itemSelectedForeColor; }
set { _itemSelectedForeColor = value; }
}
private Color _itemForeColor2 = Color.FromArgb(73, 119, 232);
[Description("副标题文本色"), Category("自定义")]
public Color ItemForeColor2
{
get { return _itemForeColor2; }
set { _itemForeColor2 = value; }
}
private Color _itemSelectedForeColor2 = Color.White;
[Description("副标题选中文本色"), Category("自定义")]
public Color ItemSelectedForeColor2
{
get { return _itemSelectedForeColor2; }
set { _itemSelectedForeColor2 = value; }
}
private int _itemHeight = 60;
[Description("项高度"), Category("自定义")]
public int ItemHeight
{
get { return _itemHeight; }
set { _itemHeight = value; }
}
private bool _autoSelectFirst = true;
[Description("自动选中第一项"), Category("自定义")]
public bool AutoSelectFirst
{
get { return _autoSelectFirst; }
set { _autoSelectFirst = value; }
}
public delegate void ItemClickEvent(UCListItemExt item);
[Description("选中项事件"), Category("自定义")]
public event ItemClickEvent ItemClick;
private bool _selectedCanClick = false;
[Description("选中后是否可以再次触发点击事件"), Category("自定义")]
public bool SelectedCanClick
{
get { return _selectedCanClick; }
set { _selectedCanClick = value; }
}
///
/// 选中的节点
///
public UCListItemExt SelectItem
{
get { return _current; }
}
向外暴露一个设置数据源的函数
public void SetList(List lst )
{
try
{
ControlHelper.FreezeControl(this, true);
this.Controls.Clear();
this.SuspendLayout();
UCListItemExt _first = null;
for (int i = lst.Count - 1; i >= 0; i--)
{
var item = lst[i];
UCListItemExt li = new UCListItemExt();
li.Height = _itemHeight;
li.TitleFont = _titleFont;
li.Title2Font = _title2Font;
li.ItemBackColor = _itemBackColor;
li.ItemForeColor = _itemForeColor;
li.ItemForeColor2 = _itemForeColor2;
li.Dock = DockStyle.Top;
li.SetData(item);
li.ItemClick += (s, e) => { SelectLabel((UCListItemExt)s); };
this.Controls.Add(li);
_first = li;
}
if (_autoSelectFirst)
SelectLabel(_first);
this.ResumeLayout(false);
Timer timer = new Timer();
timer.Interval = 10;
timer.Tick += (a, b) =>
{
timer.Enabled = false;
this.VerticalScroll.Value = 1;
this.VerticalScroll.Value = 0;
this.Refresh();
};
timer.Enabled = true;
}
finally
{
ControlHelper.FreezeControl(this, false);
}
}
选中项的处理
private void SelectLabel(UCListItemExt li)
{
try
{
HZH_Controls.ControlHelper.FreezeControl(this, true);
this.FindForm().ActiveControl = this;
if (_current != null)
{
if (_current == li && !_selectedCanClick)
return;
_current.ItemBackColor = _itemBackColor;
_current.ItemForeColor = _itemForeColor;
_current.ItemForeColor2 = _itemForeColor2;
}
li.ItemBackColor = _itemSelectedBackColor;
li.ItemForeColor = _itemSelectedForeColor;
li.ItemForeColor2 = _itemSelectedForeColor2;
_current = li;
if (ItemClick != null)
{
ItemClick(li);
}
}
finally
{
HZH_Controls.ControlHelper.FreezeControl(this, false);
}
}
完成,看下完整代码
// 版权所有 黄正辉 交流群:568015492 QQ:623128629
// 文件名称:UCListExt.cs
// 创建日期:2019-08-15 16:01:22
// 功能描述:List
// 项目地址:https://gitee.com/kwwwvagaa/net_winform_custom_control
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace HZH_Controls.Controls
{
[DefaultEvent("ItemClick")]
public partial class UCListExt : UserControl
{
private Font _titleFont = new Font("微软雅黑", 15F);
[Description("标题字体"), Category("自定义")]
public Font TitleFont
{
get { return _titleFont; }
set { _titleFont = value; }
}
private Font _title2Font = new Font("微软雅黑", 14F);
[Description("副标题字体"), Category("自定义")]
public Font Title2Font
{
get { return _title2Font; }
set { _title2Font = value; }
}
private Color _itemBackColor = Color.White;
[Description("标题背景色"), Category("自定义")]
public Color ItemBackColor
{
get { return _itemBackColor; }
set { _itemBackColor = value; }
}
private Color _itemSelectedBackColor = Color.FromArgb(73, 119, 232);
[Description("标题选中背景色"), Category("自定义")]
public Color ItemSelectedBackColor
{
get { return _itemSelectedBackColor; }
set { _itemSelectedBackColor = value; }
}
private Color _itemForeColor = Color.Black;
[Description("标题文本色"), Category("自定义")]
public Color ItemForeColor
{
get { return _itemForeColor; }
set { _itemForeColor = value; }
}
private Color _itemSelectedForeColor = Color.White;
[Description("标题选中文本色"), Category("自定义")]
public Color ItemSelectedForeColor
{
get { return _itemSelectedForeColor; }
set { _itemSelectedForeColor = value; }
}
private Color _itemForeColor2 = Color.FromArgb(73, 119, 232);
[Description("副标题文本色"), Category("自定义")]
public Color ItemForeColor2
{
get { return _itemForeColor2; }
set { _itemForeColor2 = value; }
}
private Color _itemSelectedForeColor2 = Color.White;
[Description("副标题选中文本色"), Category("自定义")]
public Color ItemSelectedForeColor2
{
get { return _itemSelectedForeColor2; }
set { _itemSelectedForeColor2 = value; }
}
private int _itemHeight = 60;
[Description("项高度"), Category("自定义")]
public int ItemHeight
{
get { return _itemHeight; }
set { _itemHeight = value; }
}
private bool _autoSelectFirst = true;
[Description("自动选中第一项"), Category("自定义")]
public bool AutoSelectFirst
{
get { return _autoSelectFirst; }
set { _autoSelectFirst = value; }
}
public delegate void ItemClickEvent(UCListItemExt item);
[Description("选中项事件"), Category("自定义")]
public event ItemClickEvent ItemClick;
private bool _selectedCanClick = false;
[Description("选中后是否可以再次触发点击事件"), Category("自定义")]
public bool SelectedCanClick
{
get { return _selectedCanClick; }
set { _selectedCanClick = value; }
}
///
/// 选中的节点
///
public UCListItemExt SelectItem
{
get { return _current; }
}
UCListItemExt _current = null;
public UCListExt()
{
InitializeComponent();
SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
this.UpdateStyles();
}
public void SetList(List lst )
{
try
{
ControlHelper.FreezeControl(this, true);
this.Controls.Clear();
this.SuspendLayout();
UCListItemExt _first = null;
for (int i = lst.Count - 1; i >= 0; i--)
{
var item = lst[i];
UCListItemExt li = new UCListItemExt();
li.Height = _itemHeight;
li.TitleFont = _titleFont;
li.Title2Font = _title2Font;
li.ItemBackColor = _itemBackColor;
li.ItemForeColor = _itemForeColor;
li.ItemForeColor2 = _itemForeColor2;
li.Dock = DockStyle.Top;
li.SetData(item);
li.ItemClick += (s, e) => { SelectLabel((UCListItemExt)s); };
this.Controls.Add(li);
_first = li;
}
if (_autoSelectFirst)
SelectLabel(_first);
this.ResumeLayout(false);
Timer timer = new Timer();
timer.Interval = 10;
timer.Tick += (a, b) =>
{
timer.Enabled = false;
this.VerticalScroll.Value = 1;
this.VerticalScroll.Value = 0;
this.Refresh();
};
timer.Enabled = true;
}
finally
{
ControlHelper.FreezeControl(this, false);
}
}
private void SelectLabel(UCListItemExt li)
{
try
{
HZH_Controls.ControlHelper.FreezeControl(this, true);
this.FindForm().ActiveControl = this;
if (_current != null)
{
if (_current == li && !_selectedCanClick)
return;
_current.ItemBackColor = _itemBackColor;
_current.ItemForeColor = _itemForeColor;
_current.ItemForeColor2 = _itemForeColor2;
}
li.ItemBackColor = _itemSelectedBackColor;
li.ItemForeColor = _itemSelectedForeColor;
li.ItemForeColor2 = _itemSelectedForeColor2;
_current = li;
if (ItemClick != null)
{
ItemClick(li);
}
}
finally
{
HZH_Controls.ControlHelper.FreezeControl(this, false);
}
}
}
}
namespace HZH_Controls.Controls
{
partial class UCListExt
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
///
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
this.SuspendLayout();
//
// ListExt
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.AutoScroll = true;
this.Name = "ListExt";
this.Size = new System.Drawing.Size(336, 368);
this.ResumeLayout(false);
}
#endregion
}
}
用处及效果
用处:一般用着需要横向切换选项的地方,比如省份切换等
效果:
调用示例
List lst = new List();
for (int i = 0; i < 5; i++)
{
lst.Add(new ListEntity()
{
ID = i.ToString(),
Title = "选项" + i,
ShowMoreBtn = true,
Source = i
});
}
this.ucListExt1.SetList(lst);
最后的话
如果你喜欢的话,请到 https://gitee.com/kwwwvagaa/net_winform_custom_control 点个星星吧,另本站转载地址:https://dotnet9.com/5334.html。
作者:冰封一夏 出处:http://www.hzhcontrols.com/doc.html 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
评论
人工智能周刊#18:微软发布手机端大模型、Llama 3 中文模型列表、苹果开源新项目、
主打尊重隐私的搜索引擎 duckduckgo,也推出了 ai chat 服务,可以使用 chatgpt 或者 claude机器学习周刊:关注 Python、机器学习、深度学习、大模型等硬核技术本期目录:1、Qwen1.5-110B:Qwen1.5 系列的首个千亿参数开源模型2、苹果开源
机器学习算法与Python实战
0
Python列表知识应知应会
点击上方“Go语言进阶学习”,进行关注回复“Go语言”即可获赠从入门到进阶共10本电子书今日鸡汤只在此山中,云深不知处。一、前言 在Python程序开发中,列表(List)经常会使用。假设一个班里有50个学生现需要统计每一个学生的总成绩情况,如果不使用列
Go语言进阶学习
0
轻松学习C#:百度行驶证C++离线SDK接入详解
效果 先看最终效果SDK 拿到完整包如图,687M解压后看看内容发现有个readme.txt,那就先看看内容1:用vs2015打开sln工程,最好用vs2015 comunity版本,可微软官网下载。2:sdk的doc目录有pdf接口文档。3:工程总入口main.cpp、请参考示例实现您的功能。4:
DotNet NB
9
C#中using的使用的几种场景
using在C#中随处可见,比如引入命名空间,这是也是每个C#的cs页面必须存在的,除了引入命名空间还有几种用法,下面将介绍这几种的使用。1、用于引入命名空间 这是最常见最基本的用法, 这样可以在程序中直
dotNET全栈开发
10
C# 优雅的处理 TCP 数据
前言Tcp是一个面向连接的流数据传输协议,用人话说就是传输是一个已经建立好连接的管道,数据都在管道里像流水一样流淌到对端。那么数据必然存在几个问题,比如数据如何持续的读取,数据包的边界等。Nagle's算法Nagle 算法的核心思想是,在一个 TCP 连接上,最多只能有一个未被确认的小数据包(小于
dotNET全栈开发
10
mica-mqtt 2.2.12 发布,简化 MqttClientTemplate 构造,方便自定义
一、简介mica-mqtt 基于 java aio 实现的简单、低延迟、高性能 的 mqtt 物联网开源组件。mica-mqtt 更加易于集成到已有服务和二次开发,降低自研物联网平台开发成本。二、功能支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。支持 websocket mqtt 子
JAVA架构日记
0
LIST | 社科(经管)可用数据集列表
个人感觉博客 textdata.cn 优质数据集都集中在这里了,我将内容按大类分成- 用户层面- 企业层面- 政府社会层面- 词向量资源- 词典资源用户层面2T数据集 | 使用GH Archive获取Github社区用户数据 2
大邓和他的Python
10
LIST | 文本分析代码列表
个人感觉 textdata.cn 文本分析代码案例都集中在这里了,我将内容按大类分成- Python语法- 数据采集- 数据处理&Pandas- 文本分析- 数据标注&机器学习- 可视化- R语言-&nb
大邓和他的Python
10