tagCANDY CGI VBレスキュー(花ちゃん) - TextBox を操作する為のワンポイントテクニック集(VB.NET) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
TextBox を操作する為のワンポイントテクニック集(VB.NET)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

TextBox を操作する為のワンポイントテクニック集(VB.NET) [No.334の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2013/02/19 17:17
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                         *
* キーワード:TextBox ,Visual Basic,VB2005,VB2008,VB2012,VS2010,テキストボックス  *
***********************************************************************************
'----------------------------------------------------------------------------------
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックス関係の Tips は、下記にも投稿してありますが、こちらで探した場合に
見当たらないと思われるので、こちらにも投稿する事にしました。

     http://www.hanatyan.sakura.ne.jp/dotnet/txtboxfl.htm

'----------------------------------------------------------------------------------

 >>1 .テキストボックスを読み取り専用にする

 >>2 .テキストボックスをパスワード入力用に設定する

 >>3 .テキストボックスでタブ文字(タブキー)を入力可能にさせる

 >>4 .テキストボックスで入力文字を大文字又は小文字専用に設定する

 >>5 .テキストボックスでフォーカスが移動しても強調表示のままにしておく

 >>6 .テキストボックスで入力文字数を指定文字数に制限する

 >>7 .テキストボックスのテキストを中央に配置・左側に配置・右側に配置する

 >>8 .テキストボックスのテキストの末尾に追加書き込みをする

 >>9 .複数行テキストボックスで自動的に次の行に折り返す

 >>10.テキストボックスの内容が変更されたかどうかを取得する

 >>11.テキストボックスにフォーカスが移った時、すべてのテキストを選択状態にする

 >>12.テキストボックスで現在選択されているテキストを取得又は設定する
     テキストボックスで選択されている文字を他の文字列に置き換える

 >>13.テキストボックスでテキストの指定範囲を選択する
     テキストボックスにフォーカスが移った時、指定の文字範囲を選択状態にする

 >>14.テキストボックスにフォーカスが移った時、文字列の後尾に移動する

 >>15.テキストボックスにフォーカスが移った時、指定の文字を選択状態にする。
     テキストボックスで、指定の文字を検索し見つかったら選択する。

 >>16.テキストボックスにフォーカスが移った時、背景色と前景色を変更する(視覚化する)

 >>17.テキストボックスで現在のカーソル位置を取得及び指定位置に文字列を挿入。
     テキストボックスで、現在のキャレット位置を取得
     テキストボックスで、現在のキャレット位置に文字列を挿入
     (置き換える場合は、 >>12 をご覧ください。)
     テキストボックスで、現在のキャレット位置にクリップボード内の文字列をペースト
     テキストボックスで、現在のキャレット位置の行を取得(現在行を取得)
     テキストボックスで、現在のキャレット位置の桁を取得(現在桁を取得)

 >>18.テキストボックスで Enter キーによるフォーカス移動
     Shift + Enter キーで、上方向移動にも対応
      ↑↓ キーでのフォーカス移動にも対応

 >>19.テキストボックスでコピー・貼り付け・切り取り・元に戻す・他を実装
     テキストボックスで選択文字列をクリップボードにコピーする    
     テキストボックスの選択文字列をクリップボードの内容と置き換える  
     テキストボックスの選択文字列をクリップボードに移動する     
     テキストボックスで直前に実行された編集操作を元に戻す      
     テキストボックスのアンドゥバッファから直前に実行された操作に関する情報を削除

 >>20.テキストボックスで数値しか入力できないように制限する(簡易型)
     テキストボックスで入力された文字列のチェック

 >>21.テキストボックスで行毎テキストの操作色々
     テキストボックスの行数を取得する。
     テキストボックスのデータを行毎に取得する。
     テキストボックスの指定行のテキストを取得する。
     テキストボックスの指定行のテキストを書き換える。
     テキストボックスの指定行に1行テキストを追加する。
     テキストボックスの指定行を削除する。(2題)

 >>22.テキストファイルを読み込みテキストボックスに表示
     テキストファイルを丸ごと読み込みテキストボックスに表示。
     テキストファイルを1行づつ読み込みテキストボックスに表示。

 >>23.テキストボックスのテキストをテキストファイルに保存
     テキストボックスのテキストをテキストファイルに上書きで保存する。
     テキストボックスのテキストをテキストファイルの末尾に追加で保存する。


------------------------------------------------------------------------------------------
  その他、サンプル投稿用掲示板に投稿済みのサンプル

   2つのテキストボックスの内容を1つのテキストファイルに保存(VB.NET)
    http://hanatyan.sakura.ne.jp/patio/read.cgi?no=234

   テキストボックス上のキャレット(カーソル)を非表示にする(VB.NET)
   http://hanatyan.sakura.ne.jp/patio/read.cgi?no=149

   複数行のテキストボックスの空白行を削除する(VB.NET) 
   http://hanatyan.sakura.ne.jp/patio/read.cgi?no=233

   複数ページに渡ってテキストを印刷する(VB.NET)
   http://hanatyan.sakura.ne.jp/patio/read.cgi?no=148

メンテ

Page: 1 |

テキストボックスを読み取り専用に設定する(VB.NET)  (No.1の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:37
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,ReadOnly ,読み取り専用 , , ,                *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスを読み取り専用に設定する。
テキストボックスのテキストが読み取り専用かどうかを調べる。

 TextBoxBase.ReadOnly プロパティ  
  テキスト ボックスのテキストが読み取り専用かどうかを示す値を取得または設定します
  テキストが読み取り専用の場合は true。それ以外の場合は false。既定値は、false です。

※ この場合、TextBox を無効(TextBox1.Enabled = False)にする場合とは違い、テキストを
  選択して、コピー(trl+C)して取得する事は可能です。

'----------------------------------------------------------------------------------

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

   TextBox1.ReadOnly = True     '読み取り専用に設定

   TextBox1.ReadOnly = False    '既定値に設定(読み書き両用)


   '読み取り専用かどうかを調べる場合
   If TextBox1.ReadOnly = True Then
      MessageBox.Show("TextBox1 は、ReadOnly に設定されています。")
   Else
      MessageBox.Show("TextBox1 は、ReadOnly に設定されていません。")
   End If

End Sub

メンテ
テキストボックスをパスワード入力用に設定する(VB.NET)  (No.2の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:37
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,Password ,パスワード , 隠し文字 , ,             *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスをパスワード入力用に設定する

 TextBox.UseSystemPasswordChar プロパティ
   TextBox コントロール内のテキストを、既定のパスワード文字として表示するかどうかを
  示す値を取得または設定します。
  TextBox コントロール内のテキストを既定のパスワード文字として表示する場合は true。
  それ以外の場合は false。

 TextBox.PasswordChar プロパティ
   単一行 TextBox コントロールでパスワードの文字をマスクするために使用される文字を
  取得または設定します。

 PasswordCharプロパティが設定された TextBoxは、文字入力するごとに指定のマスク用文字に
 置き換えられて表示され、選択してコピー等での取得はできなくなります。

※ UseSystemPasswordChar プロパティは、PasswordChar プロパティよりも優先されます。
   UseSystemPasswordChar が true に設定されている場合、既定のシステムのパスワード文字が
  使用され、PasswordChar で設定された文字は無視されます。
   従って、下記コードでは、TextBox2.PasswordChar = CChar("*") は無視され、
   TextBox2.UseSystemPasswordChar = True の設定の方が有効となります。
'----------------------------------------------------------------------------------

Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click

  'クリック毎に True / False を切り替えています。
   TextBox2.UseSystemPasswordChar = Not TextBox2.UseSystemPasswordChar

   '又は、

   TextBox2.PasswordChar = CChar("*")

   '標準の状態に戻す場合(MSDN では、マスクしない場合は、このプロパティの値を 0 (文字値)
  '                  に設定します。既定値も 0 (文字値) です。と書いていますが)
   'TextBox2.PasswordChar = CChar(vbNullString)


   '読み取る時は、普通の場合と同様にプログラムから読み取る事ができます。
   MessageBox.Show("TextBox2.Text = " & TextBox2.Text)

End Sub
メンテ
テキストボックスでタブ文字(タブキー)を入力可能にさせる(VB.NET)  (No.3の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:38
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,Tab キー ,タブキー ,タブ文字 ,フォーカス ,移動       *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスにタブ文字を入力させる

 TextBoxBase.AcceptsTab プロパティ
  タブ オーダーに従って次のコントロールにフォーカスを移動させる代わりに、
  コントロールにタブ文字を入力させる。
  複数行テキスト ボックス コントロールで、Tab キーを押すかどうかを示す値を
  取得または設定します。
  Tab キーを使用して複数行テキスト ボックスにタブを入力できる場合は True。
  Tab キーを押すとフォーカスが移動する場合は false。既定値は、False です。
'----------------------------------------------------------------------------------


Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click

   TextBox3.Multiline = True     'Multiline = True が条件となります。

   'クリック毎に、True / False を切り替えております。
   TextBox3.AcceptsTab = Not TextBox3.AcceptsTab

End Sub
メンテ
テキストボックスで入力文字を大文字又は小文字専用に設定する(VB.NET)  (No.4の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:38
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,大文字 ,小文字 ,ToLower ,ToUpper ,             *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスで入力文字を大文字又は小文字専用に設定する。

 TextBox.CharacterCasing プロパティ
  TextBox コントロールで入力された文字の大文字と小文字を変更するかどうかを
  取得または設定します。
  CharacterCasing 列挙体のメンバー(Normal / Upper / Lower)を使用して設定する。
'----------------------------------------------------------------------------------


Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click

  '標準の状態(既定値)
  TextBox4.CharacterCasing = CharacterCasing.Normal Then

  '入力された文字は、すべて大文字に変更・表示されます。
   TextBox4.CharacterCasing = CharacterCasing.Upper

  '入力された文字は、すべて小文字に変更・表示されます。
   TextBox4.CharacterCasing = CharacterCasing.Lower

End Sub
メンテ
TextBoxでフォーカスが移動しても強調表示のままにしておく(VB.NET)  (No.5の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:39
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,強調表示 ,選択状態 ,フォーカス , HideSelection  ,      *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスでフォーカスが移動しても強調表示のままにしておく
 TextBoxBase.HideSelection プロパティ  
  テキスト ボックス がフォーカスを失ったときに、選択されているテキストが
  強調表示されたままかどうかを示す値を取得、又は、設定します。
'----------------------------------------------------------------------------------

Private Sub Button5_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button5.Click

   '前準備で、今回の設定とは特に関係ありません。(文字列を選択状態にしてからテスト)
   'TextBox5.Text = "あいうえおかきくけこ"
   'TextBox5.Select(4, 3)

   'クリック毎に、True / False を切り替えております。
   TextBox5.HideSelection = Not TextBox5.HideSelection

   '動作確認のための設定です。(選択した状態でフォーカスを移動して見て下さい。)
   'TextBox6.Focus()

End Sub
メンテ
テキストボックスで入力文字数を指定文字数に制限する(VB.NET)  (No.6の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:40
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,入力文字数制限 ,表示文字数制限 ,MaxLength , 文字列長,    *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスで入力文字数を指定文字数に制限する

 TextBoxBase.MaxLength プロパティ  
   ユーザーがテキスト ボックス コントロールに入力または貼り付けできる
  最大文字数を取得または設定します。

※ コードでは、Text プロパティの値を MaxLength プロパティで指定した値よりも長い値に
  設定できます。
  このプロパティは、実行時にコントロールに入力されるテキストにだけ影響します。
'----------------------------------------------------------------------------------


Private Sub Button6_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button6.Click

   '入力文字数のMaxを10文字に制限する。
   TextBox6.MaxLength = 10


  '下記のような場合10文字以上でも入力できます。
   TextBox6.Text = "1234567890123456あいう"

End Sub
メンテ
テキストボックスのテキストを中央に配置・左側に配置・右側に配置(VB.NET)  (No.7の個別表示) [スレッド一覧へ]
日時: 2013/02/16 15:52
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,中央揃え ,右揃え,左揃え,文字列長,センターリング,レイアウト *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスのテキストを中央に配置・左側に配置・右側に配置する

 TextBox.TextAlign プロパティ  
  TextBox コントロールでテキストをどのように配置するかを取得または設定します。
  HorizontalAlignment 列挙体で中央に配置・左側に配置・右側に配置等を指定する。
'----------------------------------------------------------------------------------


Private Sub Button7_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button7.Click

  '左側に配置する。
  TextBox7.TextAlign = HorizontalAlignment.Left

  '中央に配置する。
  TextBox7.TextAlign = HorizontalAlignment.Center

  '右側に配置する。
  TextBox7.TextAlign = HorizontalAlignment.Right

End Sub
メンテ
テキストボックスのテキストの末尾に追加書き込みをする(VB.NET)  (No.8の個別表示) [スレッド一覧へ]
日時: 2013/02/16 16:33
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox ,追加書き込み,末尾に書き込み,末尾に追記,文字列連結,高速処理 *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスのテキストを中央に配置・左側に配置・右側に配置する

 TextBoxBase.AppendText メソッド
  テキスト ボックスの現在のテキストにテキストを追加します。
  連結演算子を使用して Text プロパティにテキストを連結する代わりに、このメソッドを
  使用してコントロールの既存のテキストにテキストを追加できます。
  尚、NET Framework 1.1 以降で使用するようにして下さい。
'----------------------------------------------------------------------------------

Private Sub Button8_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button8.Click

   TextBox8.Text = "あいうえお"

   TextBox8.AppendText("ABCD")   '結果 あいうえおABCD と表示される


   '結果としては上記と同じですが、多くの連結が必要な場合には、
   '上記の方(AppendText)がパフォーマンス的には優れているようです。
   TextBox8.Text &= "ABCD"

End Sub
メンテ
複数行テキストボックスで自動的に次の行に折り返す(VB.NET)  (No.9の個別表示) [スレッド一覧へ]
日時: 2013/02/16 16:50
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:ワードラップ,折り返す,右端で折り返し,スクロールバーが表示されない  *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

複数行テキストボックスで自動的に次の行に折り返す。

 TextBoxBase.WordWrap プロパティ  
  複数行テキスト ボックス コントロールで必要に応じて自動的に次の行に折り返すか
  どうかを示します。

※ このプロパティが true に設定されている場合は、ScrollBars プロパティの
  設定値に関係なく水平スクロール バーは表示されません。
'----------------------------------------------------------------------------------

Private Sub Button9_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button9.Click

   'クリック毎に、True / False (折り返す/折り返さない)を切り替えております。
   TextBox9.WordWrap = Not TextBox9.WordWrap

End Sub
メンテ
テキストボックスの内容が変更されたかどうかを取得する(VB.NET)  (No.10の個別表示) [スレッド一覧へ]
日時: 2013/02/16 17:11
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:変更,書き換え,修正,テキスト,テキストボックス内            *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:047
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスの内容が変更されたかどうかを取得する

 TextBoxBase.Modified プロパティ  
  コントロールが作成されてから、またはコントロールが最後に設定されてから、
  ユーザーがテキストボックスコントロールを変更したかどうかを示す値を取得・設定します。
  コントロールの内容が変更された場合は true。それ以外の場合は false。

  このプロパティをコードで使用すると、アプリケーションでテキストボックスに変更が
  加えられたかどうかを判断することもできます。
  テキストボックスコントロールで変更が加えられたかどうかを判断するために、
  このプロパティを validation メソッドおよび data-saving メソッドで使用すると、
  変更された内容を検証または保存できます。

  Text プロパティをプログラムによって変更すると、Modified プロパティは false に戻ります。
  これにより、ModifiedChanged イベントは発生しません。
'----------------------------------------------------------------------------------

Private Sub Button10_Click(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Button10.Click


   If TextBox10.Modified Then
      MessageBox.Show("文字列が変更されました。")
   Else
      MessageBox.Show("文字列は変更されていません。")
   End If


   TextBox10.Text = ""

   '上記の結果は False になる。
   If TextBox10.Modified Then
      MessageBox.Show("文字列が変更されました。")
   Else
      MessageBox.Show("文字列は変更されていません。")
   End If

End Sub
メンテ
テキストボックスにフォーカスが移った時全てのテキストを選択状態にする(VB.NET)  (No.11の個別表示) [スレッド一覧へ]
日時: 2013/02/16 18:58
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,すべてのテキストを選択,フォーカスが移った時          *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:040
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスにフォーカスが移った時、全てのテキストを選択状態にする

 TextBoxBase.SelectAll メソッド
  テキスト ボックスのすべてのテキストを選択します。

  こういった場合、VB6.0の時は、GotFocus 及び LostFocus イベントを使用していましたが、
  .NET では替わりに、Enter 及び Leaveイ ベントを使用するそうです。

尚、フォーカス イベントは次の順序で発生します。
  1.Enter 2.GotFocus 3.Leave 4.Validating 5.Validated 6.LostFocus

'----------------------------------------------------------------------------------

Private Sub TextBox1_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox1.Enter
  'テキスト ボックスのすべてのテキストを選択します。
   TextBox1.SelectAll()

End Sub
メンテ
テキストボックスで現在選択されているテキストを取得・設定する(VB.NET)  (No.12の個別表示) [スレッド一覧へ]
日時: 2013/02/17 22:21
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,選択状態にする,フォーカスが移った時,指定文字,置換,挿入    *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:040
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスで現在選択されているテキストを取得又は設定する
テキストボックスで選択されている文字を他の文字列に置き換える

 SelectedText プロパティ
  コントロールで現在選択されているテキストを示す値を取得または設定します。

'----------------------------------------------------------------------------------

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

   '選択した文字を取得する場合
   MessageBox.Show(TextBox3.SelectedText)

   '選択した文字を他の文字に置き換える場合。
   TextBox3.SelectedText = "置換文字"

End Sub
メンテ
テキストボックスでテキストの指定範囲を選択する(VB.NET)  (No.13の個別表示) [スレッド一覧へ]
日時: 2013/02/16 20:23
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,選択状態にする,フォーカスが移った時,指定範囲         *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:040
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスでテキストの指定範囲を選択する
テキストボックスにフォーカスが移った時、指定の文字範囲を選択状態にする

 Select メソッド
  テキストボックスでテキストの範囲を選択します。

'----------------------------------------------------------------------------------

Private Sub TextBox2_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox2.Enter

  'テキストボックスにフォーカスが移った時に、3桁目から5文字選択する
   TextBox2.Select(2, 5)


   '又は、下記でも選択できます。
   'TextBox2.SelectionStart = 2
   'TextBox2.SelectionLength = 5

End Sub
メンテ
テキストボックスにフォーカスが移った時文字列の後尾に移動する(VB.NET)  (No.14の個別表示) [スレッド一覧へ]
日時: 2013/02/16 20:37
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,末尾に移動,後尾に移動,フォーカスが移った時,          *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:040
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスにフォーカスが移った時、文字列の後尾に移動する

 SelectionStart プロパティ
  テキスト ボックスで選択されているテキストの開始点を取得または設定します。
 TextLength プロパティ
  コントロールのテキストの長さを取得します。
'----------------------------------------------------------------------------------

Private Sub TextBox4_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox4.Enter

  'このテキストボックスにフォーカスが移った時、文字列の後尾に移動する場合
   TextBox4.SelectionStart = TextBox4.TextLength

End Sub
メンテ
テキストボックスにフォーカスが移った時指定の文字を選択状態にする(VB.NET)  (No.15の個別表示) [スレッド一覧へ]
日時: 2013/02/16 21:14
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,文字列を検索,指定の文字,フォーカスが移った時,選択状態     *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:040
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスにフォーカスが移った時、指定の文字を選択状態にする。
テキストボックスで、指定の文字を検索し選択する。

 テキストボックスには、RichTextBox の Find メソッド のようなものがないので、
 String.IndexOf メソッド を使って、指定文字を検索しました。
'----------------------------------------------------------------------------------

Private Sub TextBox5_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox5.Enter

  '指定の文字を検索して見つかったら選択状態にする
   Dim target As String = "かき"

   '指定した文字がこのインスタンス内で最初に見つかった位置を取得
   Dim findPos As Integer = TextBox5.Text.IndexOf(target)

   If findPos > -1 Then    '見つかった場合の処理
      TextBox5.Select(findPos, target.Length)
   Else    '見つからなかった場合の処理
      TextBox5.SelectionStart = TextBox5.TextLength
   End If

End Sub
メンテ
テキストボックスにフォーカスが移った時背景色と前景色を変更する(VB.NET)  (No.16の個別表示) [スレッド一覧へ]
日時: 2013/02/16 23:21
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,文字列を検索,指定の文字,フォーカスが移った時,選択状態     *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:040
投 稿 日:2013/02/16  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスにフォーカスが移った時背景色と前景色を変更する(視覚化する)

'----------------------------------------------------------------------------------

Private Sub TextBox6_Enter(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox6.Enter

   '背景色と前景色を設定する
   With TextBox6
      .SelectionStart = .TextLength  '選択状態にならないように
      .BackColor = Color.Yellow
      .ForeColor = Color.Red
   End With

End Sub

Private Sub TextBox6_Leave(ByVal sender As Object, _
                           ByVal e As System.EventArgs) Handles TextBox6.Leave

   '背景色と前景色を元に戻す
   TextBox6.BackColor = Color.FromKnownColor(System.Drawing.KnownColor.Window)
   TextBox6.ForeColor = Color.FromKnownColor(System.Drawing.KnownColor.WindowText)

End Sub
メンテ
テキストボックスで現在のカーソル位置を取得及び文字列を挿入(VB.NET)  (No.17の個別表示) [スレッド一覧へ]
日時: 2013/02/17 17:22
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,キャレット,カーソル,現在行,現在桁,文字列をペースト,挿入    *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:041
投 稿 日:2013/02/17  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

これまでのサンプル(1〜16)をご覧になってから、ご利用下さい。

※ タイトルでは、一般的な呼び名のカーソルを使っておりますが、MSDN の表記に合わせて
  キャレット(カーソル、カレット (caret)) を使用します。

テキストボックスで、現在のキャレット位置を取得
 通常、キャレット位置と言うと TextBox1.SelectionStart の位置が使用されるのですが、
 SelectionStart は、選択開始位置を現しており、キャレット位置としては、適当でないので、
 ここでは、選択されている場合は選択終了位置(実キャレット位置)を現在のキャレット位置と
 しております。
 そう言った意味では、下記サンプルは、ツッコミモード満載のサンプルとなっております。
  http://www.hanatyan.sakura.ne.jp/dotnet/txtbox02.htm

テキストボックスで、現在のキャレット位置に文字列を挿入
 (置き換える場合は、 >>12 をご覧ください。)
テキストボックスで、現在のキャレット位置にクリップボード内の文字列をペースト
テキストボックスで、現在のキャレット位置の行を取得(現在行を取得)
テキストボックスで、現在のキャレット位置の桁を取得(現在桁を取得)


使用コントロールの配置や実行結果の図は、下記リンクをご覧ください。
http://www.hanatyan.sakura.ne.jp/samplepic/textbox01.gif

'----------------------------------------------------------------------------------


Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click

   Dim cp As Integer = TextBox1.SelectionStart + TextBox1.SelectionLength
   Dim msg As String = "現在のキャレット位置は、" & cp.ToString & " 文字目にあります"
   msg &= vbCrLf & "(改行文字 (CrLf) は、2文字として換算されます。)"
   MessageBox.Show(msg)

End Sub


Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click

   '現在システムクリップボードにあるデータを取得します
   Dim iData As IDataObject = Clipboard.GetDataObject()

   'クリップボードにテキストデータがあれば
   If iData.GetDataPresent(DataFormats.Text) Then

      '選択されている文字と置き換える場合は、下記2行は不要となります。
      Dim cp As Integer = TextBox1.SelectionStart + TextBox1.SelectionLength
      TextBox1.Select(cp, 0)

      '現在のキャレット位置に挿入する(下記行だけ実行すれば置換になります。)
      TextBox1.SelectedText = "[" & CType(iData.GetData(DataFormats.Text), String) & "]"

   End If

End Sub


'参考コード
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick

   '現在のキャレット位置を求める
   Dim cp As Integer = TextBox1.SelectionStart + TextBox1.SelectionLength

   '.GetLineFromCharIndex メソッド
   'テキスト内の指定した文字位置から行番号を取得します。 0 から始まるので、+ 1
   Dim cpy As Integer = TextBox1.GetLineFromCharIndex(cp) + 1

   'GetFirstCharIndexFromLine メソッド
   '指定した行の最初の文字のインデックスを取得します。
   Dim cpx As Integer = TextBox1.GetFirstCharIndexFromLine(cpy - 1)

   Label1.Text = " 現在行 = " & cpy.ToString & "         現在桁 = " & (cp - cpx).ToString

End Sub


'テスト用の環境を設定(適当にご準備下さい。)
Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load

   TextBox1.Multiline = True
   TextBox1.ScrollBars = ScrollBars.Both
   TextBox1.Text = "あいうえお" & ControlChars.CrLf & _
                   "kakikukeko" & vbCrLf & _
                   "さしすせそ"
   'この場合、改行文字(CrLf)は、2文字としてカウントされる
   TextBox1.Select(8, 1)
   TextBox1.HideSelection = False
   Timer1.Interval = 100
   Timer1.Enabled = True

End Sub
メンテ
テキストボックスで Enter キーによるフォーカス移動(VB.NET)  (No.18の個別表示) [スレッド一覧へ]
日時: 2013/02/17 17:51
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,フォーカス移動,Enterキー,エンターキー,                    *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:043
投 稿 日:2013/02/17  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

この手のサンプルは、色々の方法があり、WEB 上を検索すれば、色々みつかります。
当サイトでもいくつか掲載しております。
 http://www.hanatyan.sakura.ne.jp/dotnet/txtbox03.htm
 http://www.hanatyan.sakura.ne.jp/dotnet/txtbox10.htm

ご自分の使用目的、環境に合わせ最適の方法をご使用下さい。
(下記サンプルは、ご使用目的によっては、満足な動作をしない場合があるかも知れません。)

テキストボックスで Enter キーによるフォーカス移動
 Shift + Enter キーで、上方向移動にも対応
  ↑↓ キーでのフォーカス移動にも対応

'----------------------------------------------------------------------------------

Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load
   '別途 Form1のプロパティで設定してもOKです。
   Me.KeyPreview = True
End Sub

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As  _
                System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
   'Enterキーが押された事を取得()
   If e.KeyChar = Chr(Keys.Enter) Then
      e.Handled = True    'KeyPress イベントをキャンセル(Beep音を消音に)
   End If
End Sub


Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As  _
                System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

   If e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then

      '除外したい TextBox がある場合
      'If Me.ActiveControl.Name = "TextBox5" Then Exit Sub

      'TextBox だけに限定する場合
      'If TypeOf (Me.ActiveControl) Is TextBox = False Then Exit Sub

      Dim sh As Boolean = e.Shift
      If e.KeyCode = Keys.Up Then
         sh = True
      End If
      If e.Control = False Then
         Me.SelectNextControl(Me.ActiveControl, Not sh, True, True, True)
      End If

   End If

End Sub

メンテ
テキストボックスでコピー・貼り付け・切り取り・元に戻す・他を実装(VB.NET)  (No.19の個別表示) [スレッド一覧へ]
日時: 2013/02/18 10:09
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,コピー,貼り付け,切り取り,元に戻す,                        *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:044
投 稿 日:2013/02/18  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

1.テキストボックスで選択文字列をクリップボードにコピーする    TextBox1.Copy
2.テキストボックスの選択文字列をクリップボードの内容と置き換える  TextBox1.Paste
3.テキストボックスの選択文字列をクリップボードに移動する     TextBox1.Cut
4.テキストボックスで直前に実行された編集操作を元に戻す      TextBox1.Undo
5.テキストボックスのアンドゥバッファから直前に実行された操作に関する情報を削除
  
'----------------------------------------------------------------------------------


Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
   'TextBoxBase.Copy メソッド
   '1.テキスト ボックスの現在の選択項目をクリップボードにコピーします。
   TextBox1.Copy()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
   'TextBoxBase.Paste メソッド
   '2.テキスト ボックスの現在の選択項目をクリップボードの内容と置き換えます。
   TextBox1.Paste()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
   'TextBoxBase.Cut メソッド
   '3.テキスト ボックスの現在の選択項目をクリップボードに移動します。
   TextBox1.Cut()
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click
   'TextBoxBase.Undo メソッド
   '4.テキスト ボックスで直前に実行された編集操作を元に戻します。
   TextBox1.Undo()
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button5.Click
   'TextBoxBase.ClearUndo メソッド
   '5.テキスト ボックスのアンドゥバッファから直前に実行された操作に関する情報を削除します。
   TextBox1.ClearUndo()
End Sub
メンテ
テキストボックスで数値しか入力できないように制限する(簡易型)(VB.NET)  (No.20の個別表示) [スレッド一覧へ]
日時: 2013/02/18 15:02
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,コピー,貼り付け,切り取り,元に戻す,                        *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:045
投 稿 日:2013/02/18  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

テキストボックスで、数値しか入力できないように制限する(簡易型)
テキストボックスで、入力された文字列のチェック

 Application.AddMessageFilter メソッド を使って、貼り付け等のメッセージを処理
 できないかと思い、チョット試してみたのですが、IMessageFilter でフィルタリングできる
 メッセージは限定的で、貼り付け等のメッセージは取得できないようです。
 どうしてもと言うなら、SampleNo:139 のサンプルのような TextBox を継承したカスタム
 コントロールを作成して、メッセージを処理する方法をご使用ください。

 私的には、ノートパソコンを使っていて、数字でも貼り付けて入力する場面が結構多いので
 貼り付け防止は、ありがた迷惑かと。 
'----------------------------------------------------------------------------------

Imports System.Text.RegularExpressions

Public Class Form1

'貼り付け等には未対応
Private Sub TextBox1_KeyPress(sender As Object, _
            e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
'(.-1234567890[Enter][BackSpace])しか入力できないように制限する(お好みで)
   If e.KeyChar >= Chr(Keys.Space) And e.KeyChar < "-"c Or _
      e.KeyChar > "9"c Or e.KeyChar = "/"c Then
      Microsoft.VisualBasic.Beep()    'エラー音
      e.Handled = True                '入力キーを無効にする
   End If
End Sub


Private Sub TextBox1_Leave(sender As Object, _
                                    e As System.EventArgs) Handles TextBox1.Leave
'入力された文字のチェック

   If Not IsNumeric(TextBox1.Text) Then
      ' 12,3.9- のようなものでも許可されてしまうので、注意(使用されない方が好ましい)  
      MessageBox.Show("IsNumeric = 数値以外が含まれています")
   End If


   '細かく指定したいなら正規表現の方が便利かと。
   If Not Regex.IsMatch(TextBox1.Text, "^-?[0-9\.]+$", RegexOptions.IgnoreCase) Then
      MessageBox.Show("数値以外が、含まれています")
  '  TextBox1.Focus()
   End If

End Sub

End Class
メンテ
テキストボックスで行毎テキストの操作色々(VB.NET)  (No.21の個別表示) [スレッド一覧へ]
日時: 2013/02/19 10:37
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][][]                                              *
* キーワード:TextBox,1行削除,1行挿入,1行書き換え,行を削除,行削除,行挿入     *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:046
投 稿 日:2013/02/19  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

1.テキストボックスの行数を取得する。
2.テキストボックスのデータを行毎に取得する。
3.テキストボックスの指定行のテキストを取得する。
4.テキストボックスの指定行のテキストを書き換える。
5.テキストボックスの指定行に1行テキストを追加する。
6.テキストボックスの指定行を削除する。(2題)

※ 処理速度等については、検証しておりませんし、目的によっては、他にもっと良い方法が
  あるかも知れません。(Lines プロパティ等の使用例として投稿)

'----------------------------------------------------------------------------------

Private Sub Button1_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button1.Click
'1.テキストボックスの行数を取得する。
   MessageBox.Show(TextBox1.Lines.Length.ToString)
End Sub


Private Sub Button2_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button2.Click
   '2.テキストボックスのデータを行毎に取得する。
   For Each txt As String In TextBox1.Lines
      Debug.Print(txt)
   Next

End Sub


Private Sub Button3_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button3.Click
   '3.テキストボックスの指定行のテキストを取得する。
   MessageBox.Show("3行目のデータ = " & TextBox1.Lines(2))
End Sub


Private Sub Button4_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button4.Click
   '4.テキストボックスの指定行のテキストを書き換える。
   Dim txtLines As String() = TextBox1.Lines
   txtLines(2) = "3 行目を書き換えました。"
   TextBox1.Lines = txtLines
End Sub


Private Sub Button5_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button5.Click
   '5.テキストボックスの指定行に1行テキストを追加する。
   Dim txtLines As String() = TextBox1.Lines
   txtLines(2) = "3行目に1行追加しました" & vbCrLf & TextBox1.Lines(2)
   TextBox1.Lines = txtLines
End Sub


Private Sub Button6_Click(sender As System.Object, _
                                    e As System.EventArgs) Handles Button6.Click
   '6.テキストボックスの指定行を削除する。
   Dim txtLines As String() = TextBox1.Lines
   txtLines(2) = ""     '3行目のテキストを削除
   TextBox1.Lines = txtLines     '
   '3行目のデーターは、先頭に vbCrLf がはいっているのでその部分を選択
   TextBox1.Select(TextBox1.GetFirstCharIndexFromLine(2), 2)
   '選択されている vbCrLf を "" と置き換える(vbCrLf を 削除)
   TextBox1.SelectedText = ""

   '又は、

   '3行目の先頭から4行目の先頭までを選択して、"" と置き換える(範囲をかえれば何行でも)
   'こちらの方が色々簡単に応用ができそうです。
   Dim sLine As Integer = 2   '削除開始行
   Dim eLine As Integer = 3   '削除終了行
   TextBox1.Select(TextBox1.GetFirstCharIndexFromLine(sLine), _
      TextBox1.GetFirstCharIndexFromLine(eLine) - TextBox1.GetFirstCharIndexFromLine(sLine))
   TextBox1.SelectedText = ""

End Sub


'起動時の処理(複数行表示用のテキストボックスで10行程度なにか入力しておいて下さい)
Private Sub Form1_Load(sender As System.Object, _
                                 e As System.EventArgs) Handles MyBase.Load
   TextBox1.Text = "1 あいうえお"
   TextBox1.AppendText(vbCrLf & "2 かきくけこ")
   TextBox1.AppendText(vbCrLf & "3 さしすせそ")
   TextBox1.AppendText(vbCrLf & "4 たちつてと")
   TextBox1.AppendText(vbCrLf & "5 なにぬねの")

End Sub
メンテ
テキストファイルを読み込みテキストボックスに表示(VB.NET)  (No.22の個別表示) [スレッド一覧へ]
日時: 2013/02/19 23:13
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][ファイル入出力][]                                *
* キーワード:TextBox,テキストファイルを読み込み,読込,Text ファイル,txt ファイル  *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:028
投 稿 日:2013/02/19  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

1.テキストファイルを丸ごと読み込みテキストボックスに表示。
2.テキストファイルを1行づつ読み込みテキストボックスに表示。

  テキストファイルは、各自ご用意ください。
  どちらの方法でも1Mバイトのファイルを読み込みテキストボックスに表示した場合
   0.5 秒以下で読み込み表示できます。

'----------------------------------------------------------------------------------

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
'テキストファイルを丸ごと読み込みテキストボックスに表示
   TextBox1.Clear()
   Dim filePath As String = "..\..\..\data\test.txt"
   Try
      'テキストファイルを現在のエンコード(シフトJIS)で開く
      Using sr As New System.IO.StreamReader(filePath, System.Text.Encoding.Default)
         'テキストボックスに読込み表示
         TextBox1.Text = sr.ReadToEnd
      End Using
   Catch ex As Exception
      MessageBox.Show(ex.Message)
   End Try
End Sub


Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
'テキストファイルを1行づつ読み込む
   TextBox1.Clear()
   Dim filePath As String = "..\..\..\data\test.txt"
   Try
      Using sr As New System.IO.StreamReader(filePath, System.Text.Encoding.Default)
         '補足1. 参照
         Dim sb As New System.Text.StringBuilder(CInt(New System.IO.FileInfo(filePath).Length))
         'ファイルの最後までループ
         Do Until sr.Peek = -1
            '1行づつ読込み連結(文字列の連結が高速に処理される)
      '加工が必要な行等がある場合は、ここで処理する
            sb.Append(sr.ReadLine & vbCrLf)
         Loop
         '読込んだデータをテキストボックスに表示
         TextBox1.Text = sb.ToString()
      End Using
   Catch ex As Exception
      MessageBox.Show(ex.Message)
   End Try
End Sub


'----------------------------------------------------------------------------------
補足1.
   読込むテキストファイルのバッファを確保、サイズ 0 でも問題ないが、ある程度サイズが
  予測できる場合は、指定しておく、詳しくは、MSDN 参照。
  ここでは、読み込むファイルのサイズを指定することにします。
    本来は、ファイルサイズではなく、ファイルの文字数を指定するべきですが、読み込む前に
  ファイルの文字列長が解らないので、それに近いサイズは、ファイルサイズで得られるので
  代用しております。

  今回テストしてみると
  使用したファイルサイズ=2710 バイト    TextBox1.Text.Length = 1458
    StreamReader(2710)    の時の Debug.Print(sb.Capacity.ToString) 結果 = 2710
  StreamReader()        の時のDebug.Print(sb.Capacity.ToString)   結果 = 2336 
  StreamReader(1458)     の時のDebug.Print(sb.Capacity.ToString)   結果 = 1458
  StreamReader(1000)     の時のDebug.Print(sb.Capacity.ToString)   結果 = 2000
  
    このように、足りなくなればSystem.Text.StringBuilderは自動で拡張しますので問題は
  おきませんが、その分効率は悪くなるといえます。
  従って、少し位メモリが無駄になっても、少し多めにとっておいた方がよいかと。
メンテ
テキストボックスのテキストをテキストファイルに保存(VB.NET)  (No.23の個別表示) [スレッド一覧へ]
日時: 2013/02/19 16:52
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[テキストボックス][ファイル入出力][]                                *
* キーワード:TextBox,上書きで保存,追加書き込み,保存,書き込み           *  
***********************************************************************************
'----------------------------------------------------------------------------------
SampleNo:028
投 稿 日:2013/02/19  
投 稿 者:VBレスキュー(花ちゃん)  
動作確認:Windows Vista / Windows 7 / VB2010 Pro SP1Rel / Framework 4.0 SP1Rel で
[Option Compare Text][Option Explicit On][Option Infer On][Option Strict On]で確認
'========1=========2=========3=========4=========5=========6=========7=========8===

1.テキストボックスのテキストをテキストファイルに上書きで保存する。
2.テキストボックスのテキストをテキストファイルの末尾に追加で保存する。

  テキストファイルは、各自ご用意ください。

'----------------------------------------------------------------------------------

Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
'テキストファイルを上書きで保存する
   Try
      Using sw As New System.IO.StreamWriter("test001.txt", False, _
                                                   System.Text.Encoding.Default)
         '書き込み
         sw.Write(TextBox1.Text)
      End Using
   Catch ex As Exception
      MessageBox.Show(ex.Message)
   End Try
End Sub


Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click
'テキストファイルを追加書き込みで保存する
   Try
      Using sw1 As New System.IO.StreamWriter("test001.txt", True, _
                                                  System.Text.Encoding.Default)
         '書き込み
         sw1.Write(vbCrLf & "123ABCあいうえお 追加分")
      End Using
   Catch ex As Exception
      MessageBox.Show(ex.Message)
   End Try
End Sub
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ