Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string controlName, value, property;
- Control currentControl = null;
- System.Reflection.PropertyInfo propertyInfo = null;
- // run through all rows in the table and set the property
- foreach (DataRow r in languageDataset.Tables[_parentForm.Name].Rows)
- {
- controlName = r["ControlName"].ToString().ToUpper();
- value = r["Value"].ToString();
- property = r["Property"].ToString();
- // check all controls on the form
- foreach (Control c in formControls)
- {
- // only change it if its the right control
- if (c.Name.ToUpper() == controlName)
- {
- propertyInfo = c.GetType().GetProperty(property);
- if (propertyInfo != null)
- propertyInfo.SetValue(c, value, null); ******Calls Event Handler?!?!******
- //
- currentControl = c;
- break;
- }
- }
- }
- <SnappletChangePassword>
- <ControlName>buttonAcceptPassword</ControlName>
- <Property>Text</Property>
- <Value>Accept</Value>
- </SnappletChangePassword>
- using System;
- using System.Drawing;
- using System.Reflection;
- using System.Windows.Forms;
- class Test
- {
- static void Main()
- {
- Button goButton = new Button {
- Text = "Go!",
- Location = new Point(5, 5)
- };
- Button targetButton = new Button {
- Text = "Target",
- Location = new Point(5, 50)
- };
- goButton.Click += (sender, args) => SetProperty(targetButton, "Text", "Changed");
- targetButton.Click += (sender, args) => MessageBox.Show("Target clicked!");
- Form f = new Form { Width = 200, Height = 120,
- Controls = { goButton, targetButton }
- };
- Application.Run(f);
- }
- private static void SetProperty(object target, string propertyName, object value)
- {
- PropertyInfo property = target.GetType().GetProperty(propertyName);
- property.SetValue(target, value, null);
- }
- }
Add Comment
Please, Sign In to add comment