c# - 如何使用 Windows 窗体应用程序仅在 DataGrid 视图中为特定行加下划线
问题描述
我正在使用 c# winforms 开发桌面应用程序,其中我有数据输入表单。在该数据输入字段中,我从具有某些文本格式(例如下划线和粗体)的单词中复制数据并将其粘贴到我的文本框中并保存。当我在 gridview 中显示输入/存储的数据时,它不会显示文本下划线和粗体。示例
将数据从 MS word 粘贴到文本框时,如下所示:
Date: 18-4-19 (underline + bold)
some text
some text
some text
some text
Date: 19-4-19 (underline + bold)
some text
some text
some text
some text
当我存储数据并在gridview上显示它时,它显示的日期没有下划线+粗体,如下所示
Date: 18-4-19
some text
some text
some text
some text
Date: 19-4-19
some text
some text
some text
some text
我怎么能做到这一点以保持日期在gridview中的下划线+粗体
需要你的帮助。
解决方案
您可以像这样在 CellFormatting 事件中执行此操作:第二个 if 语句可能会根据您的需要有所不同:
我假设您的 DataGridView 名称是“myDataGridView”,而您要应用更改的列名称是“columnName”
您可以将该事件订阅代码(第一行)放在您的构造函数中,紧跟在预生成的方法“InitializeComponent()”之后,或者通过 Visual Studio/Properties/Events 订阅该事件。
..
myDataGridView.CellFormatting += myDataGridView_CellFormatting;
..
private void myDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
// First ill check if im in right column
// Second if checks if the value starts with "Date"
if (e.ColumnIndex == myDataGridView.Columns("columnName").Index) {
if (myDataGridView.Rows(e.RowIndex).Cells("columnName").Value.ToString().StartsWith("Date")) {
// apply your formatting
myDataGridView.Font = new Font(e.CellStyle.Font, FontStyle.Bold | FontStyle.Underline);
}
}
}
推荐阅读
- go - _cgo_topofstack@@Base 在剥离的二进制文件中
- javascript - Vue 3 - 移除单个对象时,对象的反应数组有错误的行为
- spring - 如何使用spring批处理读取在远程位置生成的文件,处理并移动到另一个位置?
- python - 将数据框转换为文本制表符分隔
- javascript - 使用javascript将div内的文本更改为负html代码
- python - 如何处理音频字节以从实时音频流中提取 MFCC?
- elasticsearch - 无法在 Elasticsearch 集群上注册 s3 存储库
- selenium-webdriver - 无法使用 switchTo() 方法获取子窗口的标题
- android - 地图未出现在 Android 模拟器中
- javascript - 如何在 Vue.js 中修复页面底部的页脚以及如何在另一页显示额外的书籍?