• ベストアンサー

C#の改行について

テキストボックスでmultilineをtrueにした場合 改行が¥nでは出来ずに Environment.NewLineを使わなければ改行できませんでした。 何故だか教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

改行コードは環境依存なので Environment.NewLineを使う事はむしろ正しいと思います。 では何故"\r\n"が駄目かですが私の環境では問題ないのでわかりません。 OSはWindowsXpでしょうか? "\r\n"で改行できないマシンで string test = Environment.NewLine; char[] chArray = test.ToCharArray(); としchArrayにどういう文字コードが入っているのか 調べてみれば原因がわかると思います。

himedaisy
質問者

お礼

OSはWindowsXpです。 OSによってできないとの事ですがWindowsなのに出来なかったのは不思議です。。。 ありがとうございました。

その他の回答 (4)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★回答者 No.3 です。 ・改行について補足します。  Windows系は『\r\n』  Unix系は『\n』  Mac OSは『\r』  がそれぞれ改行コードになります。 ・『\n』、『\r\n』で上手く改行できない=Mac OS ですか?  もしも、Mac OS ならば『\r』のキャリッジ・リターンのコードが改行になります。 ・以上。おわり。→ちなみに OS は何でしたか?

himedaisy
質問者

お礼

ちなみにWindowsXpでした。 ありがとうございました。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス ・一般に Windows OS では \r\n の2文字です。  下の C# の参考リンクを貼っておきます。  http://dobon.net/vb/dotnet/string/controlchars.html→『改行、タブ文字などの定数』  http://dobon.net/vb/dotnet/string/newline.html→『文字列の途中で改行する』  http://jeanne.wankuma.com/tips/string/constant.html→『改行コードなどの定数を使用する』 ・以上。今後の参考に!

参考URL:
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
himedaisy
質問者

お礼

回答ありがとうございました。 \r\nも試したんですがダメだったんですよね。 ネットでも結構探したんでこちらのURLも見てました^^ 今までコード書いてる際\nでも使えてたので テキストボックス内だけが何故か使えなかったので疑問に思いました。 難しいですね。。。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

Windowsですから 「¥n」(lf)ではなく「¥r¥n」(cr+lf)では? C#でtextBox1.Text += "\r\n"; で改行できましたよ。

himedaisy
質問者

お礼

回答ありがとうございます。 \r\nでも試したんですがダメだったんですよ。 環境の違いみたいなんですが。。。 すべてに対応しているEnvironment.NewLineで使っていきます。

  • nep0707
  • ベストアンサー率39% (902/2308)
回答No.1

もともとWindowsの改行コードって\nじゃないですからね。 \r\nでもだめでした?

himedaisy
質問者

お礼

ありがとうございます。 \r\nでもダメだったんです。 使う物により無理な場合があるようですね・・

関連するQ&A

  • テキストボックスに改行を含む値を表示する場合

    テキストファイルより1行ずつ値を改行「chr(13)」でつなげて取得し、それを テキストボックスに表示させたいのですが、そのまま値をテキストボックスの textプロパティに設定すると、改行が「・」で表示され改行されていません。 テキストボックスのプロパティでMultiLineもTrueにしてあるのですが、これは 無理なことなのでしょうか? 一行ずつ取得してテキストボックスに表示する際に改行を設定していくしかない のでしょうか? 詳しい方いらっしゃいましたらご教示ください。 よろしくお願いいたします。

  • テキストボックスについて

    1. テキストボックスの MultiLine プロパティを False に設定すると,そのプログラムの実行中に,テキストボックス内でリターンキーが押されると,エラー音が発生します。これを抑止したいのですが,どうすればよいのでしょうか? なお,MultiLine プロパティを True にするとエラー音は発生しなくなりますが,そのかわりに改行が行われてしまいます。MultiLine プロパティを True にして改行を抑止する方法でも構いません。どうか教えていただきたく存じます。 2. テキストボックス入力中にタブキーが押されたことを認識させたいのですが,KeyDown で認識させようとしてもうまくいきません。単にフォーカスが動いてしまうだけになってしまいます。フォーカスを移動させずに,タブキーが押されたことを認識させる方法を教えてください。 以上2点,どうかよろしくお願いいたします。

  • データを改行する方法

    データの呼び出し方についてご教授お願いします。 言語:Microsoft Visual Studio 2008 データベース:SQL Server 2005 非接続型のデータアクセスです。 varchar型のフィールドにデータを格納しているのですが、ダラダラとこのように入っています。 ↓ ああああああああああ。いいいいいいいいいいい。うううううううううううう。 これをフォーム上のテキストボックス(Multiline=true)に下記のように表示したいのですがどのようにすればよいのでしょうか? ああああああああああ。 いいいいいいいいいいい。 うううううううううううう。 できれば、改行したデータをそのままフィールドに持てればいいのですが、そのようなことができるのでしょうか?

  • VBA テキストボックスの行数取得

    Excle2000を使用しています。 ユーザーフォームにテキストボックスを設置してあり、MultiLineとEnterKeyBehaviorをTrueにして改行できるようにしてあります。 そこでテキストボックスに文字を入力し、コマンドボタンなどをクリックするとメッセージボックスにそのテキストボックスの行数を表示させるにはどうしたら良いでしょうか?? よろしくお願いします。

  • ASP C# 改行させたい

    マルチラインのテキストボックスに改行の入った文字列を入力して、そのテキストボックスをセッション変数に入れてからラベルに代入して表示すると改行がされないのですが、なにかいい方法があるのでしょうか?

  • ファイルに上書きするとファイルの中身が消えてしまいます。

    .NETで、テキストファイルの中身が 30 20 10 と改行されているファイルを読み込み、それを10を15にして再度テキストファイルに書き込みする時に、 Print(a, スコア(DataCounter) + Environment.NewLine) というので書き込んでいるのですが、 追加情報 : 文字列 " " から型 'Double' へのキャストが有効ではありません。 というエラーが出てしまいます。 もしかして、Environment.NewLineっていうのは、文字列にしか使えないのですか?であれば、数値に対するものはあるのでしょうか? 教えていただければ助かります。

  • ユーザーフォーム内のテキストボックスで改行

    ユーザーフォーム内のテキストボックスで改行をしたいんですが、どのようにすればいいんでしょうか? EnterKeyBehaviorっていうところかと思って「True」にしてみたんですが変わりませんでした…

  • C# ボタンコントロール内で文字の改行

    C#でWindowsアプリケーションを作成しています。 ユーザーコントロールでカスタマイズしたボタンを作成しました。 また、そのボタンを動的に配置していく処理を作成しました。 ボタンに表示するボタン名(文字列)が長いものもあるので、改行を させようと思い、以下のようなコードを書きました。 UCtl.BT_Button1.Text = "あ" + Environment.NewLine + "い"; また、このユーザーコントロール「UCtl」は以下の配列に格納します。 cControl1 = new Control[5]; その後、パネルの上に追加していっています。 wPanel.Controls.Add(cControl1[0]); wPanel.Controls.Add(cControl1[1]); しかし、期待する結果”あ”改行”い”と表示されず、”あ”のみが表示されます。 原因として考えられることがお分かりの方がいらっしゃればお教えいただきたいです。 以上です。

  • 改行をカンマ変換、複数ある場合を1個に

    テキストの改行部分をカンマに置き換えています。JavaScript初心者です。 if(getId("br_kanma").checked==true){ str = str.replace(/(\r\n\r\n)|(\n\n)|(\r\n)|(\n)/g, ","); } この場合で、連続改行が続く場合にカンマも増えてしまいます・・・ 改行スペースが多くてもカンマを1個だけにするにはどうしたらよいでしょうか?  

  • ボタンの表示を改行表示したい

    ボタンの表示を改行表示したい Windows CE上で動作するソフトを作成中で、ダイアログ上に5個のボタンを置き、押されたボタンにより、それぞれのボタンの表示を変更しようとしています。 中には1行では表示しきれないものがあり、改行したいのですが、「**・・・」と表示されます。他のボタンとのバランスを考えると、横幅を広げる事は出来ません。 ボタンの色を変える為、Owner DrawをTRUEにしているせいだろと推測は出来るのですが、どうやれば改行出来るのでしょうか? ※Owner DrawをFALSEに戻し、MultilineをTRUEにし、Owner DrawをTRUEにし、プロパティのCaptionに\nを入れると改行はされますが...。 環境は以下の通りです。 ・Windows CE 5.0 ・Visual C++ 2005 ・MFCスマートデバイス 以上、よろしくお願いします。

専門家に質問してみよう