winform中dataGridView如何实现按钮列控制图片列,点击关闭按钮,亮红灯,按钮text变为打开;再次点击按钮,亮绿灯,text显示为关闭。
2条回答 默认 最新
- 樱桃丶老丸子 2023-09-05 15:37关注
用下面的代码试试,我没调整样式
下面代码里面有一行 Image.Equals(CircularRed) 因为我的图片实例是相同的所以直接这样比较就行了,假如说你的实例不同可以借助Row.Cells["Image"].Tag来进行比较/// <summary> /// 测试 /// </summary> public void TestDelegate() { //pictureBox_Test.Image = CircularRed; //红色圆形 var CircularRed = GetCircular(System.Drawing.Color.Red); //绿色圆形 var CircularGreen = GetCircular(System.Drawing.Color.Green); dataGridView.Columns.Add(new DataGridViewImageColumn { Name = "Image", HeaderText = "图片", }); dataGridView.Columns.Add(new DataGridViewButtonColumn { Name = "Button", HeaderText = "按钮", //UseColumnTextForButtonValue = true, //Text = "打开" }); dataGridView.Rows.Add(CircularRed, "打开"); dataGridView.Rows.Add(CircularRed, "打开"); dataGridView.Rows.Add(CircularRed, "打开"); dataGridView.CellClick += (sender, e) => { if (e.RowIndex < 0) { return; } if (dataGridView.Columns[e.ColumnIndex].Name.Equals("Button")) { //确保是按钮这一列 var Row = dataGridView.Rows[e.RowIndex]; var Image = Row.Cells["Image"].Value; if (Image.Equals(CircularRed)) { Row.Cells["Image"].Value = CircularGreen; Row.Cells["Button"].Value = "关闭"; } else { Row.Cells["Image"].Value = CircularRed; Row.Cells["Button"].Value = "打开"; } } }; } /// <summary> /// 获取一个圆形 /// </summary> /// <param name="color">颜色</param> /// <returns></returns> public System.Drawing.Bitmap GetCircular(System.Drawing.Color color) { System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(50, 50); System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap); var Pen = new Pen(color); var RectangleF = new RectangleF(10, 10, 30, 30); System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(color); graphics.FillEllipse(myBrush, RectangleF); graphics.DrawEllipse(Pen, RectangleF); graphics.Dispose(); return bitmap; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表