Skip to main content

Accessing a windows form controls from another class

Answer is in this page:

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

Popular posts from this blog

wget error–“zsh: parse error near &”

There is no doubt that I prefer wget way over any other type of downloads… Syntax: wget <DOWNLOAD_URL>   If you get this error “ zsh: parse error near & ” then its probably because your download URL has a “&” so you should try giving your DOWNLOAD_URL in double quotes wget “<DOWNLOAD_URL>”   If you are trying to download from a site which needs you to give your credentials then you can try giving it this way wget --http-user=<UserName> --http-password=<Password> “<DOWNLOAD_URL>”   Hope this helps

How to Unpack a tar file on Windows?

On Windows: You can download a simple command line tool to do this. You can download the tool from here Usage can be found on the website but pasting it here too for convenience: C:\>TarTool.exe Usage : C:\>TarTool.exe sourceFile destinationDirectory C:\>TarTool.exe D:\sample.tar.gz ./ C:\>TarTool.exe sample.tgz temp C:\>TarTool.exe -x sample.tar temp TarTool 2.0 Beta supports bzip2 decompression for files with extensions like tar.bz2 and .bz2 . TarTool -xj sample.tar.bz2 temp or TarTool -j sample.bz2 Download TarTool 2.0 Beta from here Unpack a .txz file on Windows Use the 7zip tool  to unpack a .txz file on windows On Linux: You can use the bzip2 and tar combined to do this… for ex: bzip2 –cd <tar.bz_fileName> | tar –xvf - This will unpack the contents of the tar.bz file Happy Un-Tar-ing

Ubuntu: "Unlock login keyring" message "the password you use to log in your computer no longer matches that of your login keyring"

Resetting all the keyring passwords:  Navigate to  Places > Home . Press  ctrl   h  t o view "hidden files". Navigate to  .gnome2 > keyrings and delete   login.keyring Using the same keyring (resetting keyring password but keeping old passwords in keyring): 1) Make a backup of the keyring cd ~/.local/share/keyrings/ cp login.keyring login.keyring.backup and after that delete  login.keyring  file rm ~/.local/share/keyrings/login.keyring 2) Create a new keyring file from Gnome Keyring with the name "login" 3) Replace the new keyring file with the backup of the old keyring file cd ~/.local/share/keyrings/ mv login.keyring.backup login.keyring Note: before Ubuntu 12.10 the path to the keyrings folder was   ~/.gnome2/keyrings/   instead of  ~/.local/share/keyrings/