|
分類:[C#]
Windows10 Visual Studio 2017
MenuStrip、TextBox、Buttonを配置したWindowsフォームで以下のようなコードを動作させてtextBox1に文字を入力します。
button1をクリックすると入力した文字列が表示されます。 ToolStripMenuItemをクリックすると入力前の文字列が表示されます。
先にbutton1をクリックして反映させた後でToolStripMenuItemをクリックすれば反映されます。
ToolStripMenuItemクリックだけで反映させるにはどのようにすればよいでしょうか。 よろしくお願いいたします。
using System; using System.ComponentModel; using System.Windows.Forms;
namespace WindowsFormsApp1 { public partial class Form1 : Form { Binding binding = new Binding(); public Form1() { InitializeComponent(); textBox1.DataBindings.Add("Text", binding, "InputText"); }
private void button1_Click(object sender, EventArgs e) { MessageBox.Show(binding.InputText); }
private void ToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show(binding.InputText); } }
public class NofityPropertyChanged : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(String info) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info)); } }
public class Binding : NofityPropertyChanged { private string _InputText; public string InputText { get { return _InputText; } set { _InputText = value; NotifyPropertyChanged(nameof(InputText)); } } } }
|