写一个Windows Forms程序

 写一个Windows Forms程序,包含两个窗口,在主窗口中加一个按钮,点击主窗口弹出子窗口,在子窗口中加一个按钮和一个文本框,在文本框中输入
字符,点击子窗口的按钮,通过事件把文本框的内容传递给主窗口,在主窗口中,加一个多行文本框显示子窗口传过来的消息。

分别建立子窗口和主窗口,如下图所示。

 
ChildForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsForm
{
    //========================================================================
    //  クラス名 : ChildForm
    /// <summary>
    /// ChildForm
    /// </summary>
    /// <remarks>
    /// 
    /// </remarks>
    //========================================================================
    public partial class ChildForm : Form
    {
        /// <summary>
        /// AddEventHandler
        /// </summary>
        /// <remarks>
        /// 给子窗口添加委托
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public delegate void AddEventHandler(object sender, string args); //委托

        /// <summary>
        /// Add
        /// </summary>
        /// <remarks>
        /// 给子窗口添加事件
        /// </remarks>
        public event AddEventHandler Add;  //事件

        //========================================================================
        //  コンストラクタ名 : ChildForm
        /// <summary>
        /// ChildForm
        /// </summary>
        //========================================================================
        public ChildForm()
        {
            InitializeComponent();
        }

        //========================================================================
        //  メソッド名 : butSub_Click
        /// <summary>
        /// 子窗口单击鼠标时触发的事件
        /// </summary>
        /// <remarks>
        /// 将文本框的值添加到事件中去,
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //========================================================================
        private void butSub_Click(object sender, EventArgs e)
        {
            //获得子窗口中文本框的值。
            string text = this.txtSub.Text.ToString();
            if (Add != null)
            {
                Add(this, text);
            }
        }

        //========================================================================
        //  メソッド名 : ChildForm_Load
        /// <summary>
        /// ChildForm_Load
        /// </summary>
        /// <remarks>
        /// 加载子窗口
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //========================================================================
        private void ChildForm_Load(object sender, EventArgs e)
        {

        }
    }
}

MainForm.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsForm
{
    //========================================================================
    //  クラス名 : MainForm
    /// <summary>
    /// MainForm
    /// </summary>
    /// <remarks>
    /// 主窗口中加一个按钮,点击主窗口弹出子窗口
    /// </remarks>
    //========================================================================
    public partial class MainForm : Form
    {
        /// <summary>接收子窗口的字符串</summary>
        public string childtext = "";

        //========================================================================
        //  コンストラクタ名 : MainForm
        /// <summary>
        /// MainForm
        /// </summary>
        //========================================================================
        public MainForm()
        {
            InitializeComponent();
        }

        //========================================================================
        //  メソッド名 : butClk_Click
        /// <summary>
        /// 主窗口单击鼠标事触发的事件
        /// </summary>
        //========================================================================
        private void butClk_Click(object sender, EventArgs e)
        {
            ChildForm childForm = new ChildForm();
            childForm.Add += new ChildForm.AddEventHandler(child_Add);
            childForm.Show();
        }

        //========================================================================
        //  メソッド名 : child_Add
        /// <summary>
        /// 
        /// </summary>
        /// <remarks>
        /// 
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        //========================================================================
        void child_Add(object sender, string args)
        {
            this.txtBox.Text += args + "\r\n";
        }

        //========================================================================
        //  メソッド名 : MainForm_Load
        /// <summary>
        ///  MainForm_Load
        /// </summary>
        /// <remarks>
        /// 加载主窗口时,调用主窗口txtBox传值的方法
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //========================================================================
        private void MainForm_Load(object sender, EventArgs e)
        {
            this.txtBox.Text = this.childtext.ToString();
        }
    }
}

Main
 static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }

猜你喜欢

转载自blog.csdn.net/JasmineDawn/article/details/7211206