• 締切済み

リッチテキストボックスで、クリップボードに影響なく、削除したいのですが

リッチテキストボックスで、クリップボードに影響なく、削除したいのですが・・・ C++/CLI、.NET環境でプログラミングを勉強しています。 richTextBox->cut()メソッドでも文字は削除されるのですが、クリップボードにその文字がコピーされてしまいます。 クリップボードに影響を与えず、文字を削除したいのですが、どのような方法がありますか? richTextBoxクラスのメンバを見ましたが、それにあたるメンバ関数が見つかりませんでした。 (T_T) 見落としているだけでしょうか?英語がわからないので、よけい苦労しています。 誰か、詳しい方お願いします。

みんなの回答

回答No.5

 こんにちは。補足頂きました。  まあ、String::Emptyと""にまつわる話は、検索をすると重箱の隅を突っつく話が出てくるのですが、  http://dobon.net/vb/dotnet/string/isempty.html  http://blogs.wankuma.com/shuujin/archive/2008/04/21/134497.aspx  そもそも、ハイライト中の文字列を消すのが目当てですから、どちらでも大丈夫だと思うんですけどねぇ。  以下のいずれでも判定出来ているので、特に気にする事は無い様な。 this->richTextBox1->SelectedText = ""; if(this->richTextBox1->SelectedText->Length == 0) { System::Windows::Forms::MessageBox::Show("ok"); } if(this->richTextBox1->SelectedText == "") { System::Windows::Forms::MessageBox::Show("ok"); } if(this->richTextBox1->SelectedText == String::Empty) { System::Windows::Forms::MessageBox::Show("ok"); }

回答No.4

 しまった。以下のプロパティで出来る筈です。  http://msdn.microsoft.com/ja-jp/library/system.windows.forms.richtextbox.selectedtext(v=VS.80).aspx  this->richTextBox1->SelectedText = String::Empty;

19740828
質問者

お礼

親切なごしどうありがとうございます!! リンクも見させていただきましたが、「""」と「String:Empty」に特に違いはなさそうですね。 勉強になりました。ありがとうございました!!

19740828
質問者

補足

回答ありがとうございます!! richTextBox->SelectedText = ""; の一文で、できたのですが、何か注意点はありますか?

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

選択した文字だけを消したいということなら、Cut前のClipboardオブジェクトの中身を保存しておいてCutのあとに書き戻すのが恐らく最も楽でしょう。 http://www.atmarkit.co.jp/fdotnet/dotnettips/152getclipbrd/getclipbrd.html http://www.atmarkit.co.jp/fdotnet/dotnettips/158setclpbrd/setclpbrd.html Expressだろうが.NETを使う限り中身は一緒です。同じようにMSDN Libraryは使えますよ?

19740828
質問者

補足

回答ありがとうございます。 クリップボードのアクセス方法がよくわかります。 ですが、RichTextBoxプロパティーは、クリップボードの操作を直接することなく、編集ができるようなので、その方法でやってみたいと思います。

回答No.2

 こんばんは。  バックスペースが押された事にしてみましょう。これで消せる筈です。  //リッチテキストの文字をハイライトにしたら、以下を実行する  System::Windows::Forms::SendKeys::Send("{BACKSPACE}");

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

空っぽにしたいだけなら、Textプロパティに空文字列設定してやればいいだけなのでは? あと、MSDN Libraryには日本語版ありますけど。

参考URL:
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.richtextbox(VS.80).aspx
19740828
質問者

補足

Textプロパティーに""を設定すると、ハイライトの文字以外の文字も消えてしまいますよね。 そうではなく、ハイライトになった文字だけ削除したいのです。 あと、自分のMSDN Libraryの事は詳しくわからないのですが、自分の環境は、Visual C++ 2008 Express Editionなんです。 ヘルプで探せるんでしょうか?

関連するQ&A

専門家に質問してみよう