VB のたまご

作成日: 2017/03/05, 更新日: 2017/03/05



TextBox

    イメージ
  •  TextBox は、ユーザーからの入力を受け付けるコントロールです。 とりあえずどういう風に動くのか見てみましょう。 以下サンプルです。「TextBoxWindow1」という画面で作成していますが、「MainWindow」に書いても構いません。

  • スポンサーリンク


    <Window x:Class="TextBoxWindow1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="TextBoxWindow1" Height="400" Width="300">
        
        <StackPanel Margin="10">
    
            <TextBox Margin="10" />
            <TextBox Margin="10" Height="100" />
            <TextBox Margin="10" AcceptsReturn="True" Height="100" AcceptsTab="True" />
    
        </StackPanel>
        
    </Window>
    

  •  3つテキストボックスを配置しています。1つ目、2つ目は、改行不可で、さらにタブ文字入力ができません(次のコントロールに遷移してしまう)。 3つ目は、改行可能(AcceptsReturn = True)、タブ文字入力可能(AcceptsTab = True)になります。

  • スポンサーリンク


  •  それでは次に、入力変更時のイベントを処理します。

  • <Window x:Class="TextBoxWindow2"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="TextBoxWindow2" Height="300" Width="300">
    
        <StackPanel Margin="10">
    
            <TextBox TextChanged="TextChanged" />
            <TextBlock Name="textblock1" />
    
        </StackPanel>
    
    </Window>
    

    Public Class TextBoxWindow2
    
        Private Sub TextChanged(sender As Object, e As TextChangedEventArgs)
    
            Dim text1 = CType(e.Source, TextBox)
            Me.textblock1.Text = text1.Text.ToUpper()
    
        End Sub
    
    End Class
    

  •  テキストボックスに小文字アルファベットを入力すると、大文字に変換して表示されます。

  •  ところで、1つ目のプログラムの3つ目のテキストボックスですが、改行し続けてもスクロール領域が表示されません。 この時にスクロール領域が表示されるようにするためには、垂直スクロールバー設定(VerticalScrollBarVisibility)、水平スクロールバー設定(HorizontalScrollBarVisibility)に、値を設定します。 「Auto」、もしくは「Visible」により表示されるようになります。

  • <Window x:Class="TextBoxWindow3"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="TextBoxWindow3" Height="300" Width="300">
    
        <StackPanel Margin="10">
    
            <TextBox Margin="10" Height="100"
                     AcceptsReturn="True" AcceptsTab="True"
                     VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" />
    
        </StackPanel>
    
    </Window>