0

句読点の後に大文字を実装しました。しかし、小文字で続けたいので、ユーザーが戻って最初の単語または文字を削除できるようにするにはどうすればよいでしょうか?

KeyPress(object sender, KeyPressEventArgs e)
{
   if(EndOfSentence())
   {
       e.KeyChar = Char.ToUpper(e.Keychar);
   }
}
//
private bool EndOfSentence()
{
  //return true if end of sentence found
}

例:私がこの文章を書くとします。戻って「私」を「私」に変えることはできません!そして、「A」を「a」に変更することはできませんが、変更したいのです! これをどのようにコーディングするのですか?

サンプルプロジェクトはこちら: http://www.filefactory.com/file/3ecbn51bhbrv/n/Capi.zip

私が見る唯一の解決策は、現在と前のキーを保存し、バックスペースまたは削除が次のように押されたかどうかを確認することです。

if (!EndOfSentence())
{
  previousKeyChar = e.KeyChar;
  return;
}
//
if(previousKeyChar.Equals('\b')) return;
else
e.KeyChar = Char.ToUpper(e.KeyChar);
//
//
// And in the EndOfSentence I Check
// if the cursor is at the end of the text
if(textbox1.Text.Length != textbox1.SelectionStart)
  return false; //allow editing in the middle of the text
4

2 に答える 2

0

またはEndOfSentence、入力の最後にいる場合にのみ true を返すように関数を変更してみてください。そうすれば、入力の最後に入力された文字のみを大文字にする必要があり、テキストの途中で何かを編集しても変更されないはずです

于 2012-04-17T09:05:05.933 に答える
0

より良い方法があるかもしれませんが、文全体をコレクションに保存し、コレクションを再度変更する前にチェックする方法があります。

于 2012-04-17T08:56:25.117 に答える