自作のTEXTエディタに行番号用のコントロールを配置する方法

このQ&Aのポイント
  • Win XP Pro SP2およびVisual Basic 20005 Express Editionを使用して自作のTEXTエディタを作製しています。コード入力用のTEXTボックスの左側に行番号用のTEXTコントロールを配置したい場合、どのような手順で行えばよいでしょうか?
  • コード入力が長くなり、入力用のテキストボックスをスクロールさせた場合、左の行番号用テキストも連動してスクロールするようにするにはどうすればよいでしょうか?
  • 行番号用のテキストコントロールを配置する際に注意すべき点についても教えてください。
回答を見る
  • ベストアンサー

コントロールの基本について

■環境  Win XP Pro SP2  Visual Basic 20005 Express Edition ■やりたい事  自作でTEXTエディタを作製しているのですが、コード  入力用のTEXTボックスの左側に行番号用のTEXTコント  ロールを配置したいのですが、不明な点があり教えて  頂きけませんか。 ■質問 コード入力が長くなり、入力用のテキストボックスを   スクロールさせた場合、左の行番号用テキストも連動   してスクロールする用にする為には、どのような手順   で、どういったコントロールを配置すればよいのでしょうか?   また、その際の注意点などがあればお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

入力のTextBoxはRichTextBoxを使った方がいいでしょうね。 スクロールイベントが拾えるのでから行番号の表示が簡単です。 行番号は、Labelを使いプロパティのAutoSizeをFalseにします。 スクロールイベントで行番号をこんな感じで書き換えます。 Dim i As Integer Label1.Text = "" For i = 1 To m Label1.Text += n + i & vbCrLf Next n:先頭の行番号 m:RichTextBoxの行数 nとmの決め方が難しい点です。

akaginoyama
質問者

お礼

体調を壊して、お礼が遅れて申し訳ありませんでした。 スクロールイベントと言う用語がわからず 紛らわしい質問の仕方で申し訳ありませんでした。 後は、スクロールイベントで別スレを立てて 質問を出したいと思います。 質問の仕方がわかり、ありがとうございました。

関連するQ&A

  • Access VBA サブフォームのサイズ変更

    Access の VBA についてご質問させていただきます。 親フォーム名:F05_親画面 サブフォーム名:F03_入力画面 サブフォームには、左からラベルが1列、テキストボックスが10列の計11列で、50行分配置されています。 つまり、11列 × 50行の表みたいにしてあります。 親フォームにスクロールバーを配置しており、親フォームのスクロールバーから入力画面を上下にスクロールできるようにしています。 サブフォームのテキストボックスに内容を表示したあと、 内容を表示した最後の行 +1から50行目までを非表示にしたのですが、 非表示にした場所にスクロールが出来てしまい、何もない画面が出来上がってしまいました。 何もない部分にスクロールできないようにしたいのですが、どのようにすればいいですか?

  • VB2005 コードでのコントロールのコピーについて

    いつもお世話になっています。 独学でVBの勉強をしているものなのですが、 どうしてもわからないことがあるので教えてください。 デザイナの画面で配置したテキストボックスなどのコントロールを、 コードでコピーして複数配置するようにしたいんです。 そこで、デザイナでTextBox1を配置して、 コードで以下のように記述しました。 Dim MyTextBox1 As New TextBox MyTextBox1 = TextBox1 Me.Controls.Add(MyTextBox1) すると、デザイナ画面で配置したテキストボックスが無くなって、 新たにコードで作成したテキストボックスだけが、 画面に表示されてしまうんです。 実際に行いたいことは、複数のコントロールをパネル上に配置して、 そのパネルをコードで複数作成することなのですが、 そもそもそのようなことはできないのでしょうか? かなり的外れな質問になってしまっているかもしれませんが、 お分かりでしたら教えてください。 よろしくお願いします。

  • テキストボックスの作り方を教えて下さい。

    エクセルで、この質問内容を入力出来る様なテキストボックスの作り方を教えて下さい。横の行が自動に折り返しをしたり、縦の行にスクロールバーが出来たり。ボックスを固定してすぐ入力出来たり。 宜しくお願いします。

  • エクセルでテキストボックスを作りたいです。

    エクセルで、この質問内容を入力出来る様なテキストボックスの作り方を教えて下さい。横の行が自動に折り返しをしたり、縦の行にスクロールバーが出来たり。ボックスを固定してすぐ入力出来たり。 宜しくお願いします。

  • テキストボックスの中の文字の配置

    任意の大きさのテキストボックスに入力した文字をボックスの上下の中央に配置する方法をお教えいただけませんか。 ちなみに、ボックスの大きさは6行の大きさで、文字は2行です。

  • エクセルVBAで、テキストボックスにセルの値を入れる

    宜しくお願いします。 エクセルデータの各項目を、すでに書式(表)が印刷された用紙のそれぞれの項目の位置に印刷させたいのですが・・・ 各項目には、500行ぐらいのデータがあり、別のワークシートの表示させたい位置(すでに印刷された用紙にあわせてある)に各項目ごとのテキストボックスを作っておいて、そのテキストボックスに各項目のデータを1行ごとに表示させて、テキストボックスのフォント調整、印刷 ~を繰り返したいのですが、どのようなコードを書けばよいのでしょうか? 進め方としては、データシートからテキストボックスに各項目のデータが表示されたら、シート上でテキストボックスのフォントや位置の微調整が出来るようにしておいて、印刷ボタンをクリックすると印刷され、次へのボタンをクリックすると、次の行のデータがテキストボックスに表示されるようにしたい。 ※印刷する場合は、テキストボックス内の文字のみ印刷(シートには印刷したくない文字書きたいので・・・) また、そのフォームには、パターンが5つあって、データには1行ごとにパターン番号が入力されているとして、それぞれのパターンにあわせたテキストボックスの配置してあるシートへ行くようにもしたい。 データの入れ替わりが多いので、別のワークブックと繋がるような仕組みにしておいて、テキストボックスの配置してあるブック側から、データのあるブックを呼びに行ってデータを取りに行くようにしておきたい。 以上、条件が多くてすみませんが、VBAは初心者で、ほんの部分的にしかまだ分かりません。どなたか詳しい方宜しくお願いします。

  • コントロール配列と同じような扱い方

    TextBox1、TextBox2、TextBox3・・・・TextBox10 と10個のテキストボックスにVB6で使っていたコントロール配列と同じような処理の仕方をコードで教えていただけませんか。 for i=0 to 9 TextBox(i).Text=i next i 上記のコードをVB.NETで書くとすれば、どのように書けばいいかということさえわかれば、なんとか頑張れる気がします。

  • ユーザーフォームについて

    エクセル2002です。 ユーザーフォーム内のテキストボックスを使用して、 (1)A1のセルに1と入力されている状態でマクロを起動した場合、 (2)ユーザーフォーム内のテキストボックスには2と表示される (3)ユーザーフォーム内のボタンを押すと、A2のセルに2と入力される。 このような流れで、A列のデータ最終行に番号をふっていきたいです。 (A列のデータ最終行がA30なら、A31に31と番号をふる) ユーザーフォームのテキストボックスとボタンは作ってあるのですが、 それぞれに入れるコードを教えていただけないでしょうか。 よろしくお願いします。

  • ACCESS フォームの入力で

    フォームの入力でコード番号を入力すると項目が自動入力出来るようにしたくて 2つ目のテキストボックスのコントロールソースに=DLookUp("[商品名]","テーブル2","[商品コード] = [コード] ")と入力したのですが 1つ目のテキストボックスに入力すると そのときは2つ目のテキストボックスは白紙で 一度フォームを閉じてから立ち上げると2つ目のテキストボックスにも入力されています。 これは閉じないと入力されないのでしょうか? 1つ目を入力した後に表示されるようにしたいのですが・・・。 よろしくお願いします。

  • 【パワーポイント】エンドロールが途中で止まります。

    パワーポイントのクレジットタイトルで 映画のエンドロールのようなものを作っているのですが、 エンドロールが途中で完全に止まってしまいます。 設定の手順を書きますと、 テキストボックスにテキスト(文字サイズ:24、 行数:70行程度)を打ち込み、 テキストボックスを選択 →アニメーションの設定 →[効果の追加]→[開始] →はなやか[クレジットタイトル]→[OK] という設定をしています。 これで再生や、スライドショーで動作を確認してみると 20行程度までは順調にテキストが下から上へと 流れ出てくるのですが、1行目がスライドの一番上のあたり までくると、テキストがピタっと止まってしまい、 残りのテキストが出てきません。 これは、どうすれば解決できますでしょうか? 理想としては、1行目が止まらずに、上に突き抜けていって、 新しい(20行目以降の)テキストもスライドをスクロール していって欲しいのですが。。。 どなたか詳しい方、ご教授して頂けませんでしょうか。

専門家に質問してみよう