none
テキストボックスのカーソル位置に文字を挿入したい。 RRS feed

  • 質問

  • こんにちは、お世話になっております。

     

    Form1にTextBox1(MultiLine)とContextMenuStrip1を配置しました。

    そこで、TextBox1でマウスのカーソル位置に右クリックして、ContextMenuStrip1からクリックした文字列を

    カーソル位置にその文字列を挿入できるでしょうか?

     

    ヒントでも結構ですので、ご教示の程よろしくお願致します。

     

    2008年5月13日 6:12

回答

  • 外池と申します。「挿入」のところ「だけ」ですが・・・、

     

    TextBoxのTextプロパティーに対して、SelectionStartプロパティーの情報を使ってStringクラスのInsertメソッドで文字列を挿入し、もとのTextBoxのTextプロパティーに書き戻す・・・

     

    これは、簡単にプログラムに書けし動作すると思いますが・・・、動作の外観がどうなるかちょっとわからないです。

     

    TextBoxの大きさに対して内容の文字列が短ければ、それっぽい動きになると思いますが、文字列が非常に長くてスクロールさせながら表示させている場合には、TextBoxのTextを書き戻すと全然別の場所(例えば文字列の最初の部分)に表示が移動してしまうかも。

     

    2008年5月13日 6:41
  • ToolStripMenuItemのNameプロパティでクリックした文字列は取得できます。挿入するのはクリップボード経由で良ければ簡単だと思います。
    2008年5月13日 6:51
    モデレータ
  • SelectedText

    2008年5月13日 7:04
  • 外池さん、trapemiyaさん、Hongliangさん

    ご回答どうもありがとうございます。

     

    SelectionStartを使ってできました。

     

    有難うございました。

     

    2008年5月13日 8:02

すべての返信

  • 外池と申します。「挿入」のところ「だけ」ですが・・・、

     

    TextBoxのTextプロパティーに対して、SelectionStartプロパティーの情報を使ってStringクラスのInsertメソッドで文字列を挿入し、もとのTextBoxのTextプロパティーに書き戻す・・・

     

    これは、簡単にプログラムに書けし動作すると思いますが・・・、動作の外観がどうなるかちょっとわからないです。

     

    TextBoxの大きさに対して内容の文字列が短ければ、それっぽい動きになると思いますが、文字列が非常に長くてスクロールさせながら表示させている場合には、TextBoxのTextを書き戻すと全然別の場所(例えば文字列の最初の部分)に表示が移動してしまうかも。

     

    2008年5月13日 6:41
  • ToolStripMenuItemのNameプロパティでクリックした文字列は取得できます。挿入するのはクリップボード経由で良ければ簡単だと思います。
    2008年5月13日 6:51
    モデレータ
  • SelectedText

    2008年5月13日 7:04
  • 外池さん、trapemiyaさん、Hongliangさん

    ご回答どうもありがとうございます。

     

    SelectionStartを使ってできました。

     

    有難うございました。

     

    2008年5月13日 8:02