0

リッチテキストボックスから別の文字列strTotalへの文字列を保持したい。次に、midIndexによってfirstPartとsecondPartのような2つのSubStringに分割します:midIndex。

次に、前半で値を変更し、後半で結合したいと思います。そして最後にそれをrichTextBoxに表示します。

このために私はこのコードを使用しました:

私の最後のデバッグの場合:

rtxtQueryPan.Text.Length = 53; midIndex = 45;

 //string Totalqueryy = rtxtQueryPan.Text;
 string firstHalf = rtxtQueryPan.Text.Substring(0, midIndex-2); 
 string secondHalf = rtxtQueryPan.Text.Substring((midIndex- 1), (rtxtQueryPan.Text.Length - 1)); // THIS LINE SHOWS ERROR

 string duplicateFirstHalf = firstHalf;
 firstHalf += " " + clColumnNames.Text + ",";
 rtxtQueryPan.Text = firstHalf+secondHalf;

コードの3行目では、次のように述べています。

インデックスと長さは、文字列内の場所を参照する必要があります。パラメータ名:長さ

長さ、midIndexvalueなどを確認しましたが、手がかりは見つかりませんでした。

4

3 に答える 3

4

C#の.Substring関数は、2番目の引数としての位置ではなく、長さを取ります。

したがって、おそらく次のコードを記述したいと思うでしょう。

rtxtQueryPan.Text.Substring(midIndex-1, (rtxtQueryPan.Text.Length-1) - midIndex);

また、length引数はオプションであり、文字列の残りの部分を含める必要があるため、ケースで指定する必要はありません。したがって、次のように書くこともできます。

rtxtQueryPan.Text.Substring(midIndex-1);
于 2012-12-05T14:24:32.717 に答える
1

Substring作用する文字列の範囲内でのみ機能します。ここでは、文字列に現在保持されているテキストよりも長いrtxtQueryPan.Textテキストを参照します。RichTextBoxの引数はSubstring開始位置と長さであることを思い出してください。

(rtxtQueryPan.Text.Length-1) - midIndex2 番目の引数として必要です。

これが役立つことを願っています。

于 2012-12-05T14:26:02.337 に答える
1

問題は、途中から2番目の文字列をつかんで、文字列全体が欲しいと言うことです。substring を使用する場合、2 番目のパラメーターは部分文字列の長さです。これで修正されるはずです。 string secondHalf = rtxtQueryPan.Text.Substring((midIndex- 1), (rtxtQueryPan.Text.Length - 1-midIndex));

于 2012-12-05T14:27:45.627 に答える