プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (5件)

 こんにちは。

補足頂きました。
 まあ、String::Emptyと""にまつわる話は、検索をすると重箱の隅を突っつく話が出てくるのですが、

 http://dobon.net/vb/dotnet/string/isempty.html
 http://blogs.wankuma.com/shuujin/archive/2008/04 …

 そもそも、ハイライト中の文字列を消すのが目当てですから、どちらでも大丈夫だと思うんですけどねぇ。
 以下のいずれでも判定出来ているので、特に気にする事は無い様な。

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");
}
    • good
    • 0

 しまった。

以下のプロパティで出来る筈です。

 http://msdn.microsoft.com/ja-jp/library/system.w …

 this->richTextBox1->SelectedText = String::Empty;

この回答への補足

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

補足日時:2010/07/27 00:53
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/07/29 00:16

選択した文字だけを消したいということなら、Cut前のClipboardオブジェクトの中身を保存しておいてCutのあとに書き戻すのが恐らく最も楽でしょう。


http://www.atmarkit.co.jp/fdotnet/dotnettips/152 …
http://www.atmarkit.co.jp/fdotnet/dotnettips/158 …

Expressだろうが.NETを使う限り中身は一緒です。同じようにMSDN Libraryは使えますよ?

この回答への補足

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

補足日時:2010/07/27 07:34
    • good
    • 0

 こんばんは。


 バックスペースが押された事にしてみましょう。これで消せる筈です。

 //リッチテキストの文字をハイライトにしたら、以下を実行する
 System::Windows::Forms::SendKeys::Send("{BACKSPACE}");
    • good
    • 0

空っぽにしたいだけなら、Textプロパティに空文字列設定してやればいいだけなのでは?


あと、MSDN Libraryには日本語版ありますけど。

参考URL:http://msdn.microsoft.com/ja-jp/library/system.w …

この回答への補足

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

補足日時:2010/07/26 22:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!