DataGridView控件用法(二):为每行记录最后加“编辑”-“删除”按钮列

2023-11-05

1. 在DataGridView控件用法(一)中已经显示出列表数据,这时我们需要对每行数据记录进行编辑,需要添加“编辑”、“删除”、“查看”这样的超链接。代码如下:

1 //为每行数据增加编辑列。
2 //设定列不能自动作成
3 UserdataGridView.AutoGenerateColumns = false;
4 //创建一个DataGridViewLinkColumn列
5 DataGridViewLinkColumn dlink = new DataGridViewLinkColumn();
6 dlink.Text = "编辑";//添加的这列的显示文字,即每行最后一列显示的文字。
7 dlink.Name = "linkEdit";
8 dlink.HeaderText = "编辑";//列的标题
9 dlink.UseColumnTextForLinkValue = true;//上面设置的dlink.Text文字在列中显示
10 UserdataGridView.Columns.Add(dlink);//将创建的列添加到UserdataGridView中
11
12 //同上方法为每条记录创建“删除”超链接
13 DataGridViewLinkColumn dlink2 = new DataGridViewLinkColumn();
14 dlink2.Text = "删除";
15 dlink2.Name = "linkDelete";
16 dlink2.HeaderText = "删除";
17 dlink2.UseColumnTextForLinkValue = true;
18 UserdataGridView.Columns.Add(dlink2);
19
20 //同上方法为每条记录创建“查看”超链接
21 DataGridViewLinkColumn dlink3 = new DataGridViewLinkColumn();
22 dlink3.Text = "查看";
23 dlink3.Name = "linkView";
24 dlink3.HeaderText = "查看";
25 dlink3.UseColumnTextForLinkValue = true;
26 UserdataGridView.Columns.Add(dlink3);

执行效果如下:

PS:上述是自己编写代码实现这些按钮,你也可以在设计器中利用属性栏来添加(通过直接点击DataGridView的编辑列,点击“添加”,选择“未绑定列”,选择类型为“DataGridViewButtonColumn”)。

同理:单元格显示按钮(DataGridViewButtonColumn),添加下拉框(DataGridViewComboBoxColumn),显示选择框(DataGridViewCheckBoxColumn) 方法也是这样。实际上DataGridViewColumn有六种派生类: DataGridViewButtonColumn,DataGridViewCheckBoxColumn,DataGridViewComboBoxColumn,DataGridViewImageColumn

DataGridViewLinkColumn 和DataGridViewTextBoxColumn,你可以根据自己不同需要选择不同列的类型,用法一样,只是类不同而已。

DataGridViewButtonColumn用法如下:

1 //设定列不能自动作成
2 UserdataGridView.AutoGenerateColumns = false;
3 //创建一个DataGridViewButtonColumn按钮列
4 DataGridViewButtonColumn dbtEdit = new DataGridViewButtonColumn();
5 dbtEdit.Text = "编辑";//添加的这列的显示文字,即每行最后一列显示的文字。
6 dbtEdit.Name = "buttonEdit";
7 dbtEdit.HeaderText = "编辑";//列的标题
8 dbtEdit.UseColumnTextForButtonValue = true;//上面设置的dlink.Text文字在列中显示
9 dbtEdit.Width = 66;
10 UserdataGridView.Columns.Add(dbtEdit);//将创建的列添加到UserdataGridView中
11
12 //创建“删除”按钮
13 DataGridViewButtonColumn dbtDelete = new DataGridViewButtonColumn();
14 dbtDelete.Text = "删除";
15 dbtDelete.Name = "buttonDelete";
16 dbtDelete.HeaderText = "删除";
17 dbtDelete.UseColumnTextForButtonValue = true;
18 dbtDelete.Width = 66;
19 UserdataGridView.Columns.Add(dbtDelete);
20
21 //创建“查看”按钮
22 DataGridViewButtonColumn dbtView = new DataGridViewButtonColumn();
23 dbtView.Text = "查看";
24 dbtView.Name = "buttonView";
25 dbtView.HeaderText = "查看";
26 dbtView.UseColumnTextForButtonValue = true;
27 dbtView.Width = 66;
28 UserdataGridView.Columns.Add(dbtView);

效果如下:

单元格添加下拉框,DataGridViewComboBoxColumn用法如下:

1 DataGridViewComboBoxColumn dCombo = new DataGridViewComboBoxColumn();
2 dCombo.Items.Add("管理员");
3 dCombo.Items.Add("会员");
4 dCombo.Items.Add("用户");
5 dCombo.Name = "dCombo";
6 //该列显示的位置
7 //dcombo.DisplayIndex = 1;
8 dCombo.HeaderText = "角色";
9
10 //绑定数据库的值时使用以下属性
11 //dCombo.DataSource = ds1 //ds1为从要显示的数据库表中查出来的数据集,如DatsSet等。
12 //dCombo.DataPropertyName = "USER_ID";//绑定的列
13
14 UserdataGridView.Columns.Add(dCombo); 

效果如下:

注意:上图左边的下拉框无法展开下面的数据,因为dataGridView的下拉框是在编辑表格可以编辑状态时才能拉出下面的选项,也就是说需要在dataGridView的ReadOnly属性为false的情况下,才可点击展开下面的数据,如上右图。

上述代码创建了一个下拉列表,默认显示的下拉框,选择时需要点击三次,第一次选中单元格,第二次启用编辑,第三次打开下拉框。如果需要一次点击打开下拉框,可以启用DataGridView的CellEnter()事件,代码如下:

1 private void UserdataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)
2 {
3 //实现单击一次显示下拉列表框
4 if (UserdataGridView.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn && e.RowIndex != -1)
5 {
6 SendKeys.Send("{F4}");
7 }
8 }

PS:还可以将下拉框动态绑定数据库。通过dCombo.DataSource和dcombo.DataPropertyNam来设置该下拉框数据来自的数据源,和绑定的列,具体用法略。

单元格添加复选框和图片控件,DataGridViewCheckBoxColumnDataGridViewImageColumn用法如下:

1 //DataGridView显示复选框
2 DataGridViewCheckBoxColumn checkBox = new DataGridViewCheckBoxColumn();
3 checkBox.HeaderText = "选择框";
4 checkBox.Name = "checkbox";
5 checkBox.AutoSizeMode =
6 DataGridViewAutoSizeColumnMode.DisplayedCells;
7 checkBox.FlatStyle = FlatStyle.Standard;
8 //显示选择框的三种状态
9 checkBox.ThreeState = true;
10 UserdataGridView.Columns.Add(checkBox);
11
12 //DataGridView显示图像
13 DataGridViewImageColumn dgvI = new DataGridViewImageColumn();
14 dgvI.Name = "Image";
15 dgvI.ValuesAreIcons = false;
16 dgvI.Image = new Bitmap("F://ashin.jpg");
17 dgvI.ImageLayout = DataGridViewImageCellLayout.Zoom;
18 dgvI.Description = "测试的图片";
19 UserdataGridView.Columns.Add(dgvI);

效果如下:

2. 按钮触发的事件。添加了这些按钮是为了点击跳到不同的程序段执行不同的功能,拦截鼠标点击触发的事件函数如下:

1 //在表格上单击触发的事件,不同的按钮或超链接或图片下拉框等等都在这里判断。
2 private void UserdataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
3 {
4 if (UserdataGridView.Columns[e.ColumnIndex].Name == "buttonEdit")
5 {
6 MessageBox.Show("触发了编辑按钮");
7 }
8 else if (UserdataGridView.Columns[e.ColumnIndex].Name == "buttonDelete")
9 {
10 MessageBox.Show("触发了删除按钮");
11 }
12 else if (UserdataGridView.Columns[e.ColumnIndex].Name == "buttonView")
13 {
14 MessageBox.Show("触发了查看按钮");
15 }
16 }

3. DataGridView中合并列。上述我们添加的3个按钮在3个列中,而我们希望这3个列能有一个共同的表头可以叫做“编辑”或“操作”。但在WinForm中我们常用的DataGridView控件,不支持在一列中显示多个按钮。怎么办?网上对DataGridView控件的列或行的合并有很多博文,大致思想有2种,一种是设法让其一列可以显示多个按钮,另一种是每列显示一个按钮(如本文上面的做法),然后将这3列合并,合并的时候是利用DataGridView的CellPainting事件对表头进行重绘,网友们说该方法存在页面往下拉动时表格绘制偏差或绘制延迟不刷新等问题,似乎后面这种方法用的多些。总之无论哪种方法实现起来都貌似比较繁琐,时间有限,我只是练练手(本身就是新手),弄个小程序而已,不想花太多时间研究这个小细节,等以后有空,再回来仔细研究研究。下面给个合并列的例子,有个朋友是这样实现二维表头的,代码如下:

1 int top = 0;
2 int left = 0;
3 int height = 0;
4 int width1 = 0;
5 private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
6 {
7 #region 重绘datagridview表头
8 DataGridView dgv = (DataGridView)(sender);
9 if (e.RowIndex == -1 && (e.ColumnIndex == 3 || e.ColumnIndex == 4))
10 {
11 //e.CellStyle.Font = new Font(dataGridView1.DefaultCellStyle.Font, FontStyle.Bold);
12 //e.CellStyle.WrapMode = DataGridViewTriState.True;
13 if (e.ColumnIndex == 3)
14 {
15 top = e.CellBounds.Top;
16 left = e.CellBounds.Left;
17 height = e.CellBounds.Height;
18 width1 = e.CellBounds.Width;
19 }
20
21 int width2 = this.dataGridView1.Columns[4].Width;
22
23 Rectangle rect = new Rectangle(left, top, width1 + width2, e.CellBounds.Height);
24 using (Brush backColorBrush = new SolidBrush(e.CellStyle.BackColor))
25 {
26 //抹去原来的cell背景
27 e.Graphics.FillRectangle(backColorBrush, rect);
28 }
29
30 using (Pen gridLinePen = new Pen(dgv.GridColor))
31 {
32 e.Graphics.DrawLine(gridLinePen, left, top, left + width1 + width2, top);
33 e.Graphics.DrawLine(gridLinePen, left, top + height / 2, left + width1 + width2, top + height / 2);
34 e.Graphics.DrawLine(gridLinePen, left + width1, top + height / 2, left + width1, top + height);
35
36 //计算绘制字符串的位置
37 string columnValue = Year;
38 SizeF sf = e.Graphics.MeasureString(columnValue, e.CellStyle.Font);
39 float lstr = (width1 + width2 - sf.Width) / 2;
40 float rstr = (height / 2 - sf.Height) / 2;
41 //画出文本框
42 if (columnValue != "")
43 {
44 e.Graphics.DrawString(columnValue, e.CellStyle.Font, new SolidBrush(e.CellStyle.ForeColor),
45 left + lstr,
46 top + rstr,
47 StringFormat.GenericDefault);
48 }
49
50 //计算绘制字符串的位置
51 columnValue = "局网台资产额";
52 sf = e.Graphics.MeasureString(columnValue, e.CellStyle.Font);
53 lstr = (width1 - sf.Width) / 2;
54 rstr = (height / 2 - sf.Height) / 2;
55 //画出文本框
56 if (columnValue != "")
57 {
58 e.Graphics.DrawString(columnValue, e.CellStyle.Font, new SolidBrush(e.CellStyle.ForeColor),
59 left + lstr,
60 top + height / 2 + rstr,
61 StringFormat.GenericDefault);
62 }
63
64 //计算绘制字符串的位置
65 columnValue = "网络资产额";
66 sf = e.Graphics.MeasureString(columnValue, e.CellStyle.Font);
67 lstr = (width2 - sf.Width) / 2;
68 rstr = (height / 2 - sf.Height) / 2;
69 //画出文本框
70 if (columnValue != "")
71 {
72 e.Graphics.DrawString(columnValue, e.CellStyle.Font, new SolidBrush(e.CellStyle.ForeColor),
73 left + width1 + lstr,
74 top + height / 2 + rstr,
75 StringFormat.GenericDefault);
76 }
77 }
78 e.Handled = true;
79 }
80 #endregion
81 }

不过:虽然没有仔细研究列的合并,我暂时还是找了个方法一定程度上替代了合并问题。因为我需要的是合并“删除”、“编辑”和“查看”这三列,本想就不显示表头好了,反正是操作列,不显示表头不注意也看不出什么来。巧合,我发现爱英思躺一个月以前发布了一篇博客专门介绍EasyCode生成器生成的修改、删除信息列表界面,用的是EasyCode 2.0版本,生成的页面第一感觉就是非常清新,真是眼前一亮,原来EasyCode代码生成器这么强大!!更诱人的是正有我想要的类似的合并列的功能,为什么说类似呢,因为样子是一样,但他是将1列(一个单元格)里面放置2个按钮,而不是常见的那种一列放一个按钮然后合并单元格的表头。下面就是爱英思躺团队用EasyCode 2.0.50727.4963版本生成的WinForm中DataGridView控件的自定义按钮列的外观,请看:

EasyCode 2.0生成的winform按钮列

关于如何设计WinForm中DataGridView控件的自定义按钮列,详细可参考该博客:

http://www.cnblogs.com/BudEasyCode/archive/2012/02/29/2373702.html

EasyCode的官方网站:http://www.budeasycode.com

我并没有用生成的所有代码,而是只拿出了其中的DataGridViewActionButtonColumn.cs类当控件来用的(该类是作者们继承DataGridViewColumn类,自己定制的一个控件而已!正如我们前面提到的DataGridViewColumn有六种派生类: DataGridViewButtonColumn,DataGridViewCheckBoxColumn…一样!) 我的用法,详见下一篇:DataGridView控件用法(三)。

本文链接:DataGridView控件用法(二):为每行记录最后加“编辑”-“删除”按钮列

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:Blog of JJoy,谢谢!^^

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataGridView控件用法(二):为每行记录最后加“编辑”-“删除”按钮列 的相关文章

  • Python - 查找图像中对象的中心

    我有一个具有白色背景和非白色对象的图像文件 我想使用 python Pillow 找到对象的中心 我在 C 中发现了类似的问题 但没有可接受的答案 如何找到物体的中心 https stackoverflow com questions 12
  • 在 WPF 中显示 Drawing.Image

    我有一个 System Drawing Image 的实例 如何在我的 WPF 应用程序中显示这一点 我尝试过img Source但这不起作用 我有同样的问题并通过结合多个答案来解决它 System Drawing Bitmap bmp I
  • 使用 JavaScript 将图像上传到 Web 服务

    我需要从 javascript 将图像上传到网络服务 我必须发送一个 json 字符串和一个文件 图像 在java中我们有MultipartEntity 我在java中有以下代码 HttpPost post new HttpPost aWe
  • 将图像文件存储在猫鼬模式的二进制数据中并以html形式显示图像

    我正在使用 Express Node js 和 Mongodb 创建上传和显示图像文件的网页 我使用 schema 将图像的二进制文件保存在 mongodb 中 这是我在index js和db js中的一点代码 var Post mongo
  • 从 url 加载图像并绘制到 HTML5 Canvas

    我在从 javascript 中的 url 加载图像时遇到问题 下面的代码可以工作 但我不想从 html 加载图像 我想使用纯 JavaScript 从 url 加载图像 var c document getElementById myCa
  • 用 C# 在图像上写入文本

    我有以下问题 我想在位图图像中制作一些图形 例如债券形式 我可以在图像中写入文字但我会在不同的位置写更多的文字 Bitmap a new Bitmap path picture bmp using Graphics g Graphics F
  • Google App Engine - 破坏服务 URL 缓存

    我终于设法让图像在 App Engine 上正确旋转 现在我正在努力绕过缓存的图像 而标准缓存清除技术不起作用 因此 第一次旋转图像时 我得到了一个不同的 URL 并且图像被旋转 第二次旋转它时 我得到相同的 URL 只有在附加 s300
  • 如何在 Angular JS 中显示以字节数组形式接收的图像

    我有一个将返回图像的服务器端应用程序 这些是响应标头 Content Disposition attachment filename 8822a009 944e 43f4 999b d297198d302a 1 0 low res Cont
  • 在 javascript/jquery 中获取图像的完整尺寸

    我在页面上有一个图像 该图像已调整大小以适合 div 例如 400x300 如何在 jQuery 中获取图像的完整尺寸 4000x3000 width 和 height 似乎只返回图像的当前大小 图像有naturalWidth and na
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 同时重新排序和旋转图像的高效方法

    为了快速加载 jpeg 我为turbojpeg 实现了一个 mex wrapper 以有效地将 大 jpeg 读入 MATLAB 对于 4000x3000px 的图像 实际解码只需要大约 120 毫秒 而不是 5 毫秒 然而 像素顺序是 R
  • 将 UIImage 放入 UIButton 的简单方法

    我的 iPhone 应用程序中有一个 UIButton 我将其大小设置为 100x100 我有一个 400x200 的图像 我希望在按钮中显示它 按钮仍然需要保持在 100x100 并且我希望图像缩小以适应 但是 保持正确的纵横比 我想这就
  • 图像未显示在从 HTML 创建的 PDF 上

    我想动态创建 PDF 这意味着我将从 Google Drive 获取文件 然后将它们放入 HTML 代码中 并尝试从中创建 PDF 一切工作正常 除了图像没有显示 我现在正在做的是 从 HTML 字符串创建 HtmlOutput 获取该 H
  • 在TImageViewer中,如何获取用户点击图片的位置?

    在TImageViewer控件中 用户可以缩放或平移图片 我的问题是 当用户点击图片时 如何获取用户在图片上的点击位置 尤其是用户可以对图片进行放大 缩小或平移之后 如何获取对应的图片点击位置呢 As shown below How to
  • 将 System.Drawing.Image 转换为 System.Windows.Media.ImageSource 但没有结果

    我想在我的 WPF 应用程序中将 Image 转换为 ImageSource 我使用正常工作的 Code128 库 已在 WinForms 应用程序中检查 下面的函数返回具有适当大小的 ImageSource 但没有任何内容可见 priva
  • 如何使用 jquery imgAreaSelect 用 php 裁剪图像?

    我正在使用以下 javascript 代码来实例化 jquery图像区域选择 http odyniec net projects imgareaselect 裁剪我的图像 document ready function ladybug im
  • 无法通过电子应用程序在discordjs上发送附加到消息的图像

    我正在尝试为我使用discordjs 编写的discord 机器人构建图形界面 但是 我在发送图像时遇到了问题 这是我的代码中负责向用户发送消息的部分 utilsateur createDM then channeltemp gt let
  • minAreaRect OpenCV 返回的裁剪矩形 [Python]

    minAreaRectOpenCV 中返回一个旋转的矩形 如何裁剪矩形内图像的这部分 boxPoints返回旋转矩形的角点的坐标 以便可以通过循环框内的点来访问像素 但是在 Python 中是否有更快的裁剪方法 EDIT See code在
  • setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

    我在Imagick中找到了两种设置图像压缩质量的方法 A 设置图像压缩质量 B 设置压缩质量 所以我想知道哪一个是最好的以及为什么在以下条件下 我读到了setCompressionQuality方法仅适用于新图像 我正在尝试压缩文件 jpe
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8

随机推荐

  • Scrapy中使用Selenium

    Scrapy中使用Selenium可以通过以下步骤实现 1 安装Selenium库 可以通过pip安装selenium库 pip install selenium 2 下载浏览器驱动 Selenium需要浏览器驱动来控制浏览器 可以下载对应
  • Win10 安装系统跳过创建用户,直接启用 Administrator

    oobe 到创建用户那里 第一种方法 按 shift F10 打开 cmd 输入 lusrmgr msc 将 administrator 启用 关闭 lusrmgr msc 回到 cmd 输入 taskmgr exe 打开任务管理器 结束进
  • (三) 计算机图形学 之 Shader 定义 (顶点 着色器)

    shader 决定材质 跟灯光的作用 shader 属性定义的通用格式 Properties Property Property 相当于一个类的公共变量 Properties 定义一个Int name display name Int 1
  • 身份证省市区SQL代码

    转载自 https blog csdn net xiaofanku article details 18085865 身份证号码的意义 前1 2位数字表示 所在省份的代码 第3 4位数字表示 所在城市的代码 第5 6位数字表示 所在区县的代
  • JWT讲解

    目录 什么是JWT 为什么会出现JWT cookie session模式 JWT模式 JWT认证过程 JWT数据格式 优点 缺点 什么是JWT 为什么会出现JWT cookie session模式 传统cookie session模式是通过
  • stm32中断详解

    中断介绍 1 在单片机系统中 如果遇到需要紧急处理的突发事件时 CPU需要迅速的作出反应 暂停正在运行的程序来处理突发事件 这时就需要中断 2 中断是指单片机正在执行程序的时 发生突发事件从而打断当前程序 转而去处理这一事件 当处理完成后再
  • this.el_.vjs_getProperty is not a function

    前言 在使用video js播放rtmp视频中切换页面 如果是弹框引入 关闭弹框时 必然会发现控制台报错这个 这是谈谈我这边遇到的这个问题 以及怎么解决的 问题 在说这个问题怎么解决之前 先说一下我这边的应用场景 以及遇到的问题 我这边使用
  • 高端大气的艺术海报的ps教程

    Step 1海报尺寸宽和高为768 1152像素 分辨率150像素 英寸 背景白色 Step 2 确定了之后复制背景图层 双击图层进入图层样式 选择渐变叠加 颜色渐变绿色到蓝色 线性渐变 Step 3 用椭圆工具绘制正圆填充颜色白色 大小为
  • 竞赛——【蓝桥杯】2022年11月第十四届蓝桥杯模拟赛第一期Java

    1 二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数 在二进制中对应 10 是 2 位数 十进制整数 22 在十进制中是 2 位数 在二进制中对应 10110 是 5 位数 请问十进制整数 2022 在二进制中是几位数 答案提交
  • 外网访问内网kafka无法链接

    根据业务需要 需要在外网访问内网的kafka 外网设备给内网推送数据 以为只需要通过NGINX代理kafka的端口就可以了 但是实际上端口代理后 端口可以链接 但是无法推送数据 猜测大概原因是因为 kafka是将链接信息注册到zookeep
  • 香港Web3欲戴王冠,银行如何承受合规之重?

    前言 6月19日 据明报报道 香港金融管理局 HKMA 总裁余伟文针对虚拟资产交易平台在香港银行开户难问题表示 一向有与香港银行有交流 交流时是否有压力则大家感觉不一 上周四 HKMA向汇丰银行 渣打银行和中国银行施压 要求其接受加密交易所
  • 后钢板弹簧吊耳—铣叉口两内侧面夹具设计

    摘 要 本次设计是对后钢板弹簧吊耳零件的加工工艺规程及一些工序的专用夹具设计 后钢板弹簧吊零件的主要加工表面是平面及孔 由加工工艺原则可知 保证平面的加工精度要比保证孔的加工精度容易 所以本设计遵循先面后孔的原则 并将孔与平面的加工明确划分
  • mysql中LEFT JOIN分页时的优化方法

    引言 查询的时候使用LEFT JOIN 配合分页要怎么优化 正文 常见的 分页SQL SELECT FROM table1 t1 LEFT JOIN table2 t2 ON t2 id t1 id LEFT JOIN table3 t3
  • 双点双向重发布小实验

    要求 1 如图搭建网络拓扑 所有路由器各自创建一个环回接口 合理规划IP地址 2 R1 R2 R2 R4 R6之间运行OSPF协议 R4 R5 R6之间运行RIP协议 3 R1环回重发布方式引入OSPF网络 4 R4 R6双点双向重发布 5
  • 华为OJ(记负均正)

    描述 从输入任意个整型数 统计其中的负数个数并求所有非负数的平均值 输入 输入任意个整数 输出 输出负数个数以及所有非负数的平均值 注意 当输入的数字的个数未知时 ivec的用法 以 0结束输入 样例测试 输入 13 4 7 输出 3 0
  • 20230904 QT客户端服务器搭建聊天室

    Ser cpp include app h include ui app h APP APP QWidget parent QWidget parent ui new Ui APP ui gt setupUi this this gt re
  • 设置git bash打印log的颜色

    在git安装目录下的 gitconfig文件中编辑 color diff auto status auto branch auto interactive true ui true alias hist log color graph pr
  • 人工智能正在重塑生产方式、优化产业结构、提升生产效率、赋能千行百业

    近日 清华大学科技情报大数据挖掘与服务系统平台AMiner发布 人工智能发展报告2011 2020 阐述过去十年人工智能取得的重要成果 探讨人工智能未来发展前景与蓝图 含此在内 多项人工智能研究报告均引发业界广泛关注 专家表示 作为引领新一
  • 如何方便的去除返回Date时间戳后面的0(或者做其他设置)

    这是get请求后 返回个前端的时间戳 可以看到后面有三个的0 如何去除这0呢 但我们在java里面返回的类又是date 有两个方法 一 重新定义返回视图对象 将createTime 和 updateTime定义为long 然后在赋值的时候更
  • DataGridView控件用法(二):为每行记录最后加“编辑”-“删除”按钮列

    1 在DataGridView控件用法 一 中已经显示出列表数据 这时我们需要对每行数据记录进行编辑 需要添加 编辑 删除 查看 这样的超链接 代码如下 view source print 1 为每行数据增加编辑列 2 设定列不能自动作成