RichEditBox でドラッグアンドドロップ
- 題名: RichEditBox でドラッグアンドドロップ
- 著者: Hiro
- 日時: 2011/09/01 10:44:14
- ID: 28962
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: RichEditBox でドラッグアンドドロップ
- 著者: jiji
- 日時: 2011/09/01 19:14:38
- ID: 28963
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: RichEditBox でドラッグアンドドロップ
- 著者: Hiro
- 日時: 2011/09/02 9:12:39
- ID: 28966
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: RichEditBox でドラッグアンドドロップ
- 著者: jiji
- 日時: 2011/09/02 11:53:53
- ID: 28968
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: RichEditBox でドラッグアンドドロップ
- 著者: Hiro
- 日時: 2011/09/02 13:21:08
- ID: 28971
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
RichEditBox で Drag&Drop を行いたくネットのページを参考にして下記のようにしました。
とりあえず、Drag&Drop 様の動作をしていますが、DragDropEffects.Move としてその文字を同じコントロール内で移動したいのですがコピーされてしまいます。
この動作は、自動で処理されないのでしょうか?
DragDropEffects.Copy と Move の違いは、カーソルの形状ぐらいなのでしょうか?
コード
private void syntaxRichTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text){
e.Effect = DragDropEffects.Move; //.Copy;
else
e.Effect = DragDropEffects.None;
}
private void syntaxRichTextBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
int i;
string s;
// Get start position to drop the text.
i = syntaxRichTextBox1.SelectionStart;
s = syntaxRichTextBox1.Text.Substring(i);
syntaxRichTextBox1.Text = syntaxRichTextBox1.Text.Substring(0, i);
// Drop the text on to the RichTextBox.
syntaxRichTextBox1.Text = syntaxRichTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString();
syntaxRichTextBox1.Text = syntaxRichTextBox1.Text + s;
}
また、上記でe.Data.GetData(DataFormats.Text).ToString();があるとその文字が2つ表示されてしまいます。実際に今テストしている時は、コメントにしていますが、実際、不要なコードですか?それとも何か不思議な個所がありますか?
実際は、下記でテスト中
syntaxRichTextBox2.Text = syntaxRichTextBox2.Text;// +e.Data.GetData(DataFormats.Text).ToString(); //<- これがあると移動した文字が2重になる
syntaxRichTextBox1というのは、CodeProject にあったコードで
namespace SyntaxHighlighter
{
public class SyntaxRichTextBox : System.Windows.Forms.RichTextBox
{
:
:
登録してある単語が入力されたら、文字の色を変えるというものです。
ちょうど、VS2010で、private void などのキーワードが青色になる機能を追加したものです。