现在有MainForm(主页面)与KeyForm('软键盘'页面)
在MainForm中新建了一个KeyForm,并把当前页面传入了KeyForm中。
我想实现的功能是,当KeyForm中按了"1"键,MainForm中textbox1则显示"1"
MainForm代码:        /// <summary>
        /// 打开'软键盘'页面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnScan_Click(object sender, EventArgs e)
        {
            KeyFormform = new KeyForm(this);
            form.ShowDialog();
        }KeyForm代码:        /// <summary>
        /// 传入的Form
        /// </summary>
        private MainForm incomingForm;        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="form">传入的Form</param>
        public Form_Key(MainForm form)
        {
            InitializeComponent();
            //传入的Form
            this.incomingForm = form;
        }        /// <summary>
        /// 按键
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lbl_Click(object sender, EventArgs e)
        {
            Label label = (Label)sender;
            //按下的键值 如"1"
            string str = label.Name.Substring(4, 1);       
            ...    
        }请问lbl_Click中的代码应该怎么写了? 我在incomingForm中找不到MainForm的textbox1控件阿。。
或者还有什么其他的方法能实现这个功能吗?

解决方案 »

  1.   

    在KeyForm的Activated时记录下当前焦点的控件ctl,然后在lbl_Click对控件ctl进行操作,试试.
      

  2.   

    KeyForm应该是MainForm吧? 怎么记录下当前控件的呢?
      

  3.   

    饿 到MainForm的设计器里改?
      

  4.   

    form1
    Private void button1_click(....)
    {
    From2 f2=new Form2();
    f2.myevent+=give;
    f2.show();
    }
    public void give(string name)
    {
    this.label1.Text=name;
    }Form2
    public delegate void mydel(string name);
    public event mydel myevent;Private void button1_click(....)
    {
    if(myevent!=null)
    {
    myevent(this.TextBox1.Text);
    }
    }
      

  5.   

    Thanks 结贴把MainForm中textbox1设为public 搞定了