bindingSourceサンプル

またまた他から転用してちょっと修正。 bindingsourceでフォントサイズを変更できないか探していたが、 フォントサイズのみの変更はできないみたい。 Font.Sizeってやってもダメだったのに、Fontでサイズプロパティに値を設定することはできた。 × textBox1.DataBindings.Add("Font.Size", bindingSource1, "Size"); 〇 textBox1.DataBindings.Add("Font", bindingSource1, "Font"); なんでだろー

using System;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
 
namespace System_Windows_Forms_UpdateBinding
{
    partial class Form1 : Form
    {
        // Declare the objects on the form.
        private Label label1;
        private Label label2;
        private TextBox textBox1;
        private TextBox textBox2;
        private Button button1;
        private BindingSource bindingSource1;
        ArrayList states;
 
        public Form1()
        {
            // Basic form setup.
            this.button1 = new System.Windows.Forms.Button();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.textBox2 = new System.Windows.Forms.TextBox();
            this.button1.Location = new System.Drawing.Point(12, 18);
            this.button1.Size = new System.Drawing.Size(119, 38);
            this.button1.Text = "RemoveAt(0)";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            this.textBox1.Location = new System.Drawing.Point(55, 75);
            this.textBox1.ReadOnly = true;
            this.textBox1.Size = new System.Drawing.Size(119, 20);
            this.label1.Location = new System.Drawing.Point(12, 110);
            this.label1.Size = new System.Drawing.Size(43, 14);
            this.label1.Text = "Capital:";
            this.label2.Location = new System.Drawing.Point(12, 78);
            this.label2.Size = new System.Drawing.Size(34, 14);
            this.label2.Text = "State:";
            this.textBox2.Location = new System.Drawing.Point(55, 110);
            this.textBox2.Size = new System.Drawing.Size(119, 20);
            this.textBox2.ReadOnly = true;
            this.ClientSize = new System.Drawing.Size(292, 273);
            this.Controls.Add(this.textBox2);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.button1);
            this.Text = "Form1";
 
            // Create an ArrayList containing some of the State objects.
            states = new ArrayList();
            states.Add(new State("California", "Sacramento"));
            states.Add(new State("Oregon", "Salem"));
            states.Add(new State("Washington", "Olympia"));
            states.Add(new State("Idaho", "Boise"));
            states.Add(new State("Utah", "Salt Lake City"));
            states.Add(new State("Hawaii", "Honolulu"));
            states.Add(new State("Colorado", "Denver"));
            states.Add(new State("Montana", "Helena"));
 
            bindingSource1 = new BindingSource();
 
            // Bind BindingSource1 to the list of states.
            bindingSource1.DataSource = states;
 
            // Bind the two text boxes to properties of State.
            textBox1.DataBindings.Add("Text", bindingSource1, "Name");
            textBox2.DataBindings.Add("Text", bindingSource1, "Capital");
            textBox1.DataBindings.Add("Font", bindingSource1, "Font");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // If items remain in the list, remove the first item. 
            if (states.Count > 0)
            {
                states.RemoveAt(0);
 
                // Call ResetBindings to update the textboxes.
                bindingSource1.ResetBindings(false);
            }
        }
 
        // The State class to add to the ArrayList.
        private class State
        {
            private string stateName;
            public string Name
            {
                get { return stateName; }
            }
 
            private string stateCapital;
            public string Capital
            {
                get { return stateCapital; }
            }
 
            private Font stateFont;
            public Font Font
            {
                get { return stateFont; }
            }
 
            public State(string name, string capital)
            {
                Random a = new Random();
                Font f = new Font("メイリオ", a.Next(10, 20), FontStyle.Regular);
                stateName = name;
                stateCapital = capital;
                stateFont = f;
            }
        }
    }
}