- 締切済み
リッチテキストボックスで、クリップボードに影響なく、削除したいのですが
リッチテキストボックスで、クリップボードに影響なく、削除したいのですが・・・ C++/CLI、.NET環境でプログラミングを勉強しています。 richTextBox->cut()メソッドでも文字は削除されるのですが、クリップボードにその文字がコピーされてしまいます。 クリップボードに影響を与えず、文字を削除したいのですが、どのような方法がありますか? richTextBoxクラスのメンバを見ましたが、それにあたるメンバ関数が見つかりませんでした。 (T_T) 見落としているだけでしょうか?英語がわからないので、よけい苦労しています。 誰か、詳しい方お願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- machongola
- ベストアンサー率60% (434/720)
こんにちは。補足頂きました。 まあ、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"); }
- machongola
- ベストアンサー率60% (434/720)
しまった。以下のプロパティで出来る筈です。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.richtextbox.selectedtext(v=VS.80).aspx this->richTextBox1->SelectedText = String::Empty;
- D-Matsu
- ベストアンサー率45% (1080/2394)
選択した文字だけを消したいということなら、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は使えますよ?
補足
回答ありがとうございます。 クリップボードのアクセス方法がよくわかります。 ですが、RichTextBoxプロパティーは、クリップボードの操作を直接することなく、編集ができるようなので、その方法でやってみたいと思います。
- machongola
- ベストアンサー率60% (434/720)
こんばんは。 バックスペースが押された事にしてみましょう。これで消せる筈です。 //リッチテキストの文字をハイライトにしたら、以下を実行する System::Windows::Forms::SendKeys::Send("{BACKSPACE}");
- D-Matsu
- ベストアンサー率45% (1080/2394)
空っぽにしたいだけなら、Textプロパティに空文字列設定してやればいいだけなのでは? あと、MSDN Libraryには日本語版ありますけど。
補足
Textプロパティーに""を設定すると、ハイライトの文字以外の文字も消えてしまいますよね。 そうではなく、ハイライトになった文字だけ削除したいのです。 あと、自分のMSDN Libraryの事は詳しくわからないのですが、自分の環境は、Visual C++ 2008 Express Editionなんです。 ヘルプで探せるんでしょうか?
お礼
親切なごしどうありがとうございます!! リンクも見させていただきましたが、「""」と「String:Empty」に特に違いはなさそうですね。 勉強になりました。ありがとうございました!!
補足
回答ありがとうございます!! richTextBox->SelectedText = ""; の一文で、できたのですが、何か注意点はありますか?