首页 > 解决方案 > 如何使用 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中的下划线+粗体

需要你的帮助。

标签: c#winformsdatagridview

解决方案


您可以像这样在 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);
            }
        }
    }

推荐阅读