UpDownBase クラス
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ <ComVisibleAttribute(True)> _ Public MustInherit Class UpDownBase Inherits ContainerControl
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [ComVisibleAttribute(true)] public abstract class UpDownBase : ContainerControl
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)] [ComVisibleAttribute(true)] public ref class UpDownBase abstract : public ContainerControl
スピン ボックスは、テキスト ボックスと小さい垂直スクロール バーで構成され、一般的にはスピン ボタン コントロールと呼ばれます。UpDownBase クラスは、2 つのコントロールにリンクしています。このクラスを使用すると、ユーザーは上向きの矢印ボタンまたは下向きの矢印ボタンをクリックしてテキスト ボックスの表示を変更したり、テキスト ボックスに適切な値を直接入力したりできます。スピン ボックスは、リスト ボックスやコンボ ボックスと同様に、ユーザーが選択できる値のリストを制限する場合に使用します。表示するリストの種類によっては、スピン ボックスを使用すると、項目を一度に 1 つずつ追加せずに、有効な値の範囲を簡単に設定できるという利点があります。UpDownBase からクラスを派生するとデータ型を制限できるため、スピン ボックスの実装は、テキスト ボックスの実装よりもデータの検証数が少なくなります。たとえば、NumericUpDown クラスでは、値を数値型に制限し、Minimum プロパティと Maximum プロパティを使用して値を検証します。
ユーザーが方向キーを使用してスピン ボックスの内容を変更できるようにするには、InterceptArrowKeys プロパティを true に設定します。指定した値に対してユーザーを制限するには、ReadOnly プロパティを true に設定します。スピン ボックスのテキストの配置を制御するには、TextAlign プロパティを設定します。コントロールのテキスト ボックス部分に関連する上向きの矢印ボタンと下向きの矢印ボタンの配置を設定するには、UpDownAlign プロパティを Left または Right に設定します。
UpButton メソッドおよび DownButton メソッドは、オーバーライドされるときに、上向きの矢印ボタンと下向きの矢印ボタンのクリックを処理します。ValidateEditText メソッドおよび UpdateEditText メソッドは、オーバーライドされるときに、選択または入力された値を検証し、スピン ボックスに表示されるテキストを更新します。この値の検証に失敗した場合は、Select メソッドを使用して、有効ではないテキストを選択します。この場合、ユーザーは既存のテキストを手動で選択したり削除したりせずに、新しい値を入力するだけでテキストを簡単に修正できます。
継承時の注意 UpDownBase から継承する場合、DownButton、UpButton、UpdateEditText、ValidateEditText の各メンバをオーバーライドする必要があります。派生クラス NumericUpDown を使用して、UpDownBase から派生したこのクラスのプロパティの一部を設定するコード例を次に示します。このコードでは、numericUpDown1 という名前の NumericUpDown コントロール、comboBox1 および comboBox2 という名前の 2 つの ComboBox コントロール、checkBox1、checkBox2、checkBox2 という名前の 3 つの CheckBox コントロールがフォームに作成されていることを前提としています。comboBox1 には、None、Fixed3D、FixedSingle という項目を追加します。comboBox2 には、Left、Right、Center という項目を追加します。
このコードを使用すると、実行時にプロパティ値を変更したり、それぞれの変更がスピン ボックスの外観と動作にどのように影響するかを確認したりできます。
Private Sub comboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) ' Set the BorderStyle property. Select Case comboBox1.Text Case "Fixed3D" numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D Case "None" numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None Case "FixedSingle" numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle End Select End Sub Private Sub comboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) ' Set the TextAlign property. Select Case comboBox2.Text Case "Right" numericUpDown1.TextAlign = HorizontalAlignment.Right Case "Left" numericUpDown1.TextAlign = HorizontalAlignment.Left Case "Center" numericUpDown1.TextAlign = HorizontalAlignment.Center End Select End Sub Private Sub checkBox1_Click(sender As Object, e As EventArgs) ' Evaluate and toggle the ReadOnly property. If numericUpDown1.ReadOnly Then numericUpDown1.ReadOnly = False Else numericUpDown1.ReadOnly = True End If End Sub Private Sub checkBox2_Click(sender As Object, e As EventArgs) ' Evaluate and toggle the InterceptArrowKeys property. If numericUpDown1.InterceptArrowKeys Then numericUpDown1.InterceptArrowKeys = False Else numericUpDown1.InterceptArrowKeys = True End If End Sub Private Sub checkBox3_Click(sender As Object, e As EventArgs) ' Evaluate and toggle the UpDownAlign property. If numericUpDown1.UpDownAlign = LeftRightAlignment.Left Then numericUpDown1.UpDownAlign = LeftRightAlignment.Right Else numericUpDown1.UpDownAlign = LeftRightAlignment.Left End If End Sub
private void comboBox1_SelectedIndexChanged(Object sender, EventArgs e) { // Set the BorderStyle property. switch(comboBox1.Text) { case "Fixed3D": numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; break; case "None": numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None; break; case "FixedSingle": numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; break; } } private void comboBox2_SelectedIndexChanged(Object sender, EventArgs e) { // Set the TextAlign property. switch (comboBox2.Text) { case "Right": numericUpDown1.TextAlign = HorizontalAlignment.Right; break; case "Left": numericUpDown1.TextAlign = HorizontalAlignment.Left; break; case "Center": numericUpDown1.TextAlign = HorizontalAlignment.Center; break; } } private void checkBox1_Click(Object sender, EventArgs e) { // Evaluate and toggle the ReadOnly property. if (numericUpDown1.ReadOnly) { numericUpDown1.ReadOnly = false; } else { numericUpDown1.ReadOnly = true; } } private void checkBox2_Click(Object sender, EventArgs e) { // Evaluate and toggle the InterceptArrowKeys property. if (numericUpDown1.InterceptArrowKeys) { numericUpDown1.InterceptArrowKeys = false; } else { numericUpDown1.InterceptArrowKeys = true; } } private void checkBox3_Click(Object sender, EventArgs e) { // Evaluate and toggle the UpDownAlign property. if (numericUpDown1.UpDownAlign == LeftRightAlignment.Left) { numericUpDown1.UpDownAlign = LeftRightAlignment.Right; } else { numericUpDown1.UpDownAlign = LeftRightAlignment.Left; } }
void comboBox1_SelectedIndexChanged( Object^ sender, EventArgs^ e ) { // Set the BorderStyle property. if ( !String::Compare( comboBox1->Text, "Fixed3D" ) ) { numericUpDown1->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D; } else if ( !String::Compare( comboBox1->Text, "None" ) ) { numericUpDown1->BorderStyle = System::Windows::Forms::BorderStyle::None; } else if ( !String::Compare( comboBox1->Text, "FixedSingle" ) ) { numericUpDown1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle; } } void comboBox2_SelectedIndexChanged( Object^ sender, EventArgs^ e ) { // Set the TextAlign property. if ( !String::Compare( comboBox2->Text, "Right" ) ) { numericUpDown1->TextAlign = HorizontalAlignment::Right; } else if ( !String::Compare( comboBox1->Text, "Left" ) ) { numericUpDown1->TextAlign = HorizontalAlignment::Left; } else if ( !String::Compare( comboBox1->Text, "Center" ) ) { numericUpDown1->TextAlign = HorizontalAlignment::Center; } } void checkBox1_Click( Object^ sender, EventArgs^ e ) { // Evaluate and toggle the ReadOnly property. if ( numericUpDown1->ReadOnly ) { numericUpDown1->ReadOnly = false; } else { numericUpDown1->ReadOnly = true; } } void checkBox2_Click( Object^ sender, EventArgs^ e ) { // Evaluate and toggle the InterceptArrowKeys property. if ( numericUpDown1->InterceptArrowKeys ) { numericUpDown1->InterceptArrowKeys = false; } else { numericUpDown1->InterceptArrowKeys = true; } } void checkBox3_Click( Object^ sender, EventArgs^ e ) { // Evaluate and toggle the UpDownAlign property. if ( numericUpDown1->UpDownAlign == LeftRightAlignment::Left ) { numericUpDown1->UpDownAlign = LeftRightAlignment::Right; } else { numericUpDown1->UpDownAlign = LeftRightAlignment::Left; } }
private void comboBox1_SelectedIndexChanged(Object sender, EventArgs e) { // Set the BorderStyle property. if (comboBox1.get_Text().Equals("Fixed3D")) { numericUpDown1.set_BorderStyle(BorderStyle.Fixed3D); } else { if (comboBox1.get_Text().Equals("None")) { numericUpDown1.set_BorderStyle(BorderStyle.None); } else { if (comboBox1.get_Text().Equals("FixedSingle")) { numericUpDown1.set_BorderStyle(BorderStyle.FixedSingle); } } } }//comboBox1_SelectedIndexChanged private void comboBox2_SelectedIndexChanged(Object sender, EventArgs e) { // Set the TextAlign property. if (comboBox2.get_Text().Equals("Right")) { numericUpDown1.set_TextAlign(HorizontalAlignment.Right); } else { if (comboBox2.get_Text().Equals("Left")) { numericUpDown1.set_TextAlign(HorizontalAlignment.Left); } else { if (comboBox2.get_Text().Equals("Center")) { numericUpDown1.set_TextAlign(HorizontalAlignment.Center); } } } } //comboBox2_SelectedIndexChanged private void checkBox1_Click(Object sender, EventArgs e) { // Evaluate and toggle the ReadOnly property. if (numericUpDown1.get_ReadOnly()) { numericUpDown1.set_ReadOnly(false); } else { numericUpDown1.set_ReadOnly(true); } } //checkBox1_Click private void checkBox2_Click(Object sender, EventArgs e) { // Evaluate and toggle the InterceptArrowKeys property. if (numericUpDown1.get_InterceptArrowKeys()) { numericUpDown1.set_InterceptArrowKeys(false); } else { numericUpDown1.set_InterceptArrowKeys(true); } } //checkBox2_Click private void checkBox3_Click(Object sender, EventArgs e) { // Evaluate and toggle the UpDownAlign property. if (numericUpDown1.get_UpDownAlign().Equals(LeftRightAlignment.Left)) { numericUpDown1.set_UpDownAlign(LeftRightAlignment.Right); } else { numericUpDown1.set_UpDownAlign(LeftRightAlignment.Left ); } } //checkBox3_Click } //Form1
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.UpDownBase
System.Windows.Forms.DomainUpDown
System.Windows.Forms.NumericUpDown
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- UpDownBase クラスのページへのリンク