我使用以下代碼在 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 關注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消