我使用以下代码在 datagridview 中屏蔽了我的密码,并且我成功地做到了。private void gvInstanceDetails_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 4) { if (e.Value != null) { gvInstanceDetails.Rows[e.RowIndex].Tag = e.Value; e.Value = new string('\u2022', e.Value.ToString().Length); } } } private void gvInstanceDetails_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { TextBox t = e.Control as TextBox; if (t != null) { t.UseSystemPasswordChar = true; } } 一旦我屏蔽了,如果用户没有删除整个文本并重新输入密码,我将无法检索用户在密码字段中输入的值。例如: - 如果密码类似于 ***** 并且用户替换最后两个字符并输入 34 然后在保存时我得到的字符串为 ***34。
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
不是我使用 winforms DataGrids。然而...
你正在杀死数据
e.Value = new string('\u2022', e.Value.ToString().Length);但是你正在放入一个标签
gvInstanceDetails.Rows[e.RowIndex].Tag = e.Value;
如果你知道你想要的行,你只需要打电话
var myAwesomePassword = (string) gvInstanceDetails.Rows[someArbitaryRow].Tag
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消
