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

C#表格与定时器实战技巧

一,表格:

1,AutoGenerateColumns是否自动生成列,设置为false 需要自己通过界面绑定类的属性(自己设置列的标题、自己设置列显示哪个属性) 设置为true,表格自动显示列的标题为绑定类的属性

2,dataGridView1 表格 可以通过DataSource属性进行绑定数据源,但是后续添加的新的数据不会立即显示到控件上,需要 再次对 dataGridView1.DataSource=null之后 再重新赋值

3,SelectedRows 选中的行 可以选择多个

4,DataBoundItem 获取选中行绑定对象,as 强制转换成Student对象

5,MessageBox.Show是有返回值的,为DialogResult对象(对话结果对象),

6,获取单元格的内容, Cells["Name1"] 获取name属性为Name1单元格的内容

7,dataGridView1.Font; //表格的默认字体

8,格式化字符串 字符串的对齐方式
StringFormat sf = new StringFormat()
{
Alignment = StringAlignment.Center,// 水平对齐方式居中
LineAlignment = StringAlignment.Center, //竖直对齐方式居中
};

9,Brushes.Black 画笔的颜色

10,Graphics 图形类

11,DrawString 绘制一个文本 参数1是绘制的字符串,参数2是绘制字体,参数3绘制的笔刷颜色 ,参数4 绘制的区域 , 参数5绘制字符串对齐方式

e.Graphics.DrawString(s,dataGridView1.Font,Brushes.Black, rect,sf);

二,自定义表格样式

1,DatagridviewStyle 关于表格样式的一个类文件,DgvStyle1()和 DgvStyle2() 设计表格样式

2,DgvRowCount() 绘制行标题

三,定时器

1,this.timer1.Stop();// 关闭定时器

2,this.timer1.Start();//开启定时器

3,this.timer1.Enabled = true; //设置定时器为激活状态的

4, this.timer1.Interval = 10;//触发定时器函数时间间隔 ms为单位

5,Color.FromArgb(255, 255, 255) 通过三原色取值合成一个颜色 三个值分别为红绿蓝 值的范围0-255,哪个值越大,越接近该颜色,255,255,255 白色;0,0,0 黑色,

6,label1.Left label的左边的距离 label1.Right label的右边的距离

四,使用代码创建定时器

1,创建定时器

timer = new Timer() { Enabled=true,Interval=10};

2,绑定定时器事件

timer.Tick += Timer_Tick;

3,进行循环添加label

for (int i = 0; i < 10; i++)
{
Label label = new Label()
{
Text = i.ToString(),
Location = new Point(100 * i, 200),
BackColor = Color.Aqua,
Size = new Size(50, 50),
TextAlign = ContentAlignment.MiddleCenter
};
this.Controls.Add(label);

4,创建随机数

}

}
Random rnd = new Random();
private void Timer_Tick(object sender, EventArgs e)
{
//MessageBox.Show(this.Controls.Count + "");
for (int i = 0;i<this.Controls.Count;i++) //this.Controls.Count。控件的个数
{
if (this.Controls[i] is Label) // 判断控件是不是Label,
{
this.Controls[i].BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
this.Controls[i].ForeColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
}
}

}

5, override 重写OnPaint方法 当绘制窗体的时候触发
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);// base调用基类的重新绘制方法
// 自定义绘图逻辑
Graphics g = e.Graphics;
Rectangle rect = new Rectangle(10, 10, 300, 50); //窗户一个矩形区域
Font font = new Font("Arial", 32, FontStyle.Bold);
LinearGradientBrush brush = new LinearGradientBrush(rect, Color.Red, Color.Yellow, 45f);// 创建一个线性渐变的笔刷
g.DrawString("渐变文本", font, brush, new PointF(10, 10));

}

}
}

运行结果:

http://www.jsqmd.com/news/195964/

相关文章:

  • 数字频率计设计核心要点:闸门时间设定技巧解析
  • Rust 生命周期,三巨头之一
  • Notion集成方案:双向同步笔记内容并生成语音摘要
  • Docker容器化部署GLM-TTS:实现环境隔离与快速迁移
  • KAN:为什么以及它是如何工作的?深入探讨
  • Ruby脚本实验:快速原型验证GLM-TTS应用场景
  • 企业级图书个性化推荐系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • 保持梯度流动
  • 如何在 ONLYOFFICE 桌面编辑器中连接本地 AI
  • 0 基础解锁网安行业:大学生实现高薪逆袭的实用攻略
  • 零经验怎么入门网络安全学习?看这一篇文章就够了!
  • Altium Designer等长走线设置方法通俗解释
  • 字体渲染优化:解决中文显示模糊或断字的问题
  • GPU运行时依赖缺失:importerror: libcudart.so.11.0 深度剖析
  • 批量语音生成利器:使用GLM-TTS JSONL格式实现自动化TTS输出
  • 网盘直链下载助手配合使用:快速分发GLM-TTS生成的音频结果
  • UPS不间断电源:避免突然断电损伤硬件与数据
  • 【教程4>第10章>第17节】基于FPGA的图像sobel边缘提取算法开发——图像sobel边缘提取仿真测试以及MATLAB辅助验证
  • QTabWidget事件处理:Qt5与Qt6差异完整指南
  • openGauss部署配置指南
  • Linux命令-init命令(管理运行级别和控制系统状态)
  • IPU编程探索:Graphcore创新架构上的GLM-TTS实验
  • 中国GPU云,正在走向全栈竞争
  • 电路仿真circuits网页版小白指南:从注册到运行第一个电路
  • 解决GLM-TTS生成慢问题:优化参数配置提升GPU利用率
  • 电机齿轮拉马
  • 显存不足怎么办?GLM-TTS低显存模式参数设置建议
  • 中文多音字发音难题终结者:GLM-TTS音素模式深度使用技巧
  • Vue.js项目整合:在管理后台中嵌入语音生成功能
  • SDK开发计划:简化移动端与桌面端接入流程