http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=34453
In case its not accessible
If we have two classes like these
testclass.cs:
using System;
using System.Collections.Generic;
using System.Text;
namespace clTestProg
{
public class testClass
{
public void InitControls(System.Windows.Forms.GroupBox gbx)
{
System.Windows.Forms.Button buttonODelete = new System.Windows.Forms.Button();
System.Windows.Forms.Button buttonOUpdate = new System.Windows.Forms.Button();
System.Windows.Forms.Button buttonOAdd = new System.Windows.Forms.Button();
//
// buttonODelete
//
buttonODelete.Location = new System.Drawing.Point(251, 324);
buttonODelete.Name = "buttonODelete";
buttonODelete.Size = new System.Drawing.Size(75, 23);
buttonODelete.TabIndex = 0;
buttonODelete.Text = "&Delete";
buttonODelete.UseVisualStyleBackColor = true;
buttonODelete.Click += new System.EventHandler(buttonUniDel_Click);
//
// buttonOUpdate
//
buttonOUpdate.Location = new System.Drawing.Point(170, 324);
buttonOUpdate.Name = "buttonOUpdate";
buttonOUpdate.Size = new System.Drawing.Size(75, 23);
buttonOUpdate.TabIndex = 0;
buttonOUpdate.Text = "&Update";
buttonOUpdate.UseVisualStyleBackColor = true;
buttonOUpdate.Click += new System.EventHandler(buttonUniEdit_Click);
//
// buttonOAdd
//
buttonOAdd.Location = new System.Drawing.Point(89, 324);
buttonOAdd.Name = "buttonOAdd";
buttonOAdd.Size = new System.Drawing.Size(75, 23);
buttonOAdd.TabIndex = 0;
buttonOAdd.Text = "&Add";
buttonOAdd.UseVisualStyleBackColor = true;
buttonOAdd.Click += new System.EventHandler(buttonUniAdd_Click);
gbx.Controls.Add(buttonODelete);
gbx.Controls.Add(buttonOUpdate);
gbx.Controls.Add(buttonOAdd);
}
private void buttonUniAdd_Click(object sender, EventArgs e)
{
testProg.Form1 frmTest = (testProg.Form1)System.Windows.Forms.Application.OpenForms["Form1"];
System.Windows.Forms.Button thisBtn = (System.Windows.Forms.Button)sender;
System.Windows.Forms.Button btnDel = (System.Windows.Forms.Button)frmTest.Controls["buttonODel"];
thisBtn.Text = "&Cancel";
btnDel.Enabled = false;
}
Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace testProg
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void buttonTest_Click(object sender, EventArgs e)
{
clTestProg.testClass myLib = new clTestProg.testClass();
myLib.InitControls(groupBox1);
}
}
}
Note: the form only has a 2 controls a groupbox with the name groupBox1 and a button with the name buttonTest. The form name is Form1.
To access the controls we have to write the following code:
testProg.Form1 frmTest = (testProg.Form1)System.Windows.Forms.Application.OpenForms["Form1"];
System.Windows.Forms.GroupBox gbx = (System.Windows.Forms.GroupBox)
frmtest.Controls["groupBox1"];
System.Windows.Forms.Button thisBtn = (System.Windows.Forms.Button)sender;
System.Windows.Forms.Button btnDel = (System.Windows.Forms.Button)gbx.Controls["buttonODelete"]; // this seems to be name rather than buttonODel
thisBtn.Text = "&Cancel";
btnDel.Enabled = false;
Comments