You should remember that your
textBox_TextChanged
is an instance, not a static function. That said, in addition to the two parameter you use, it also has hidden "this" parameter. In what class this method is declared? Use this instance to pass a reference to another control. For example, imaging this is a form (very likely), and your UI is
System.Windows.Forms
. I also don't want to use a named handler, it looks ugly. So, let's see:
partial public class MyForm {
TextBox OneTextBox =
TextBox AnotherTextBox =
public MyForm() {
OneTextBox.TextChanged += (sender, eventArgs) => {
TextBox thisTextBox = (TextBox)sender;
thisTextBox = this.OneTextBox;
thisTextBox = OneTextBox;
TextBox anotherTextBox = this.AnotherTextBox;
};
}
}
Of the text boxes are in different forms, the difference is minor: you need somehow pass a reference to
AnotherTextBox
to another form. This is reduced to the popular question about form collaboration. The most robust solution is implementation of an appropriate interface in form class and passing the interface reference instead of reference to a "whole instance" of a Form. Please see my past solution for more detail:
How to copy all the items between listboxes in two forms[
^].
Please also see other solutions in this discussion. If the application is simple enough, the solution could be as simple as declaring of some
internal
property in one form and passing a reference to the instance of one form to the instance of another form. For more complex projects, such violation of strictly encapsulated style and
loose coupling could add up the the
accidental complexity of the code and invite mistakes, so the well-encapsulated solution would be preferable.
Please see also:
http://en.wikipedia.org/wiki/Accidental_complexity[
^],
http://en.wikipedia.org/wiki/Loose_coupling[
^].
—SA