1

我在数据网格中有 SSN 列,我想像这样屏蔽它*****1234。但是当用户键入类型 SSN 时,它不应该屏蔽它。有什么方法可以屏蔽数据网格中的单元格。

4

2 回答 2

2

我只知道一种方法可以做到这一点,尽管可能有一种更简单的方法*。您可以在 datagridview 单元格中托管自定义编辑控件。该变形仅在您编辑单元格时出现,否则单元格的值可见。您可以在此处阅读有关此内容的更多信息:

https://msdn.microsoft.com/en-us/library/7tas5c80.aspx

您可以通过某种方式实现这一点,即单元格本身仅包含被屏蔽的值,而编辑控件则包含完整的值。


*确实有一个更简单的,见文森特回答

于 2015-02-03T15:12:35.693 回答
1

您可以通过CellFormattingDataGridView. 例如像这样:

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.Value != null && e.Value.ToString() != "SSN")
    {
        if (!(dataGridView1.CurrentCell != null && dataGridView1.IsCurrentCellInEditMode && dataGridView1.CurrentCell.RowIndex == e.RowIndex && dataGridView1.CurrentCell.ColumnIndex == e.ColumnIndex))
        {
            e.Value = "****1234";
            e.FormattingApplied = true;
        }
    }
}
于 2015-02-03T15:15:27.067 回答