我有一個非法位置和不能從這些位置移動的字符列表。我將如何防止在TextChanged事件中修改這些內容?我提出的每一個解決方案都非常黑客和不可靠,或者依賴於KeyDown事件,它不會阻止用戶以其他方式刪除只讀文本(選擇文本並刪除它,或者只是按退格鍵)。c中部分只讀文本框#
我想過做這樣的:
//CharPos is a class with an int (CharPos.Position) and a char that
//should be at that int's position (CharPos.Ch)
foreach (CharPos p in IllegalPositions)
{
console.Text = console.Text.Remove(p.Position, 1);
console.Text = console.Text.Insert(p.Position, p.Ch.ToString());
}
但它完全打亂了,去上一個無限循環。即使我停止這樣做,如果您通過使用刪除鍵來更改文本的字符數,它也不起作用。也許我可以用某種方式使用正則表達式? (我不知道,我沒有任何經驗與正則表達式)。
什麼是IllegalPositions?提供示例。位置和字符是否應該永久保留在文本框中,並且用戶在它們之間輸入了字符?提供更多細節。提供您使用的實際代碼和實際輸入。 –
對不起,我覺得這很清楚。我現在無法訪問我的主PC,因此暫時不能添加任何代碼。 IllegalPositions是字符串中的位置列表(由CharPos定義,一個包含表示位置的int的類以及是原始字符的Ch)。他們應該永久保留,是的,用戶應該能夠在前後寫文本,但不會覆蓋或刪除這些職位中的任何字符。 – user2950509
什麼是'console.Text'?我只知道C#中的'Console.Write'或'Console.WriteLine'。你的foreach循環對我來說看起來不錯。它在特定位置移除然後添加角色。我沒有看到問題。我需要更多細節。應用程序MVC,WebForms?你是否使用帶自動回發功能的asp:TextBox? –