Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Indirect reference to controls or binding to arraylist i
Message
General information
Forum:
ASP.NET
Category:
The Mere Mortals .NET Framework
Environment versions
Environment:
C# 2.0
OS:
Windows Server 2003
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01341965
Message ID:
01342006
Views:
24
For me it's a bit hard to answer your question, since I have only theoretical knowledge of reflection. Let's hope either Rick or Paul or Bonnie will jump in and straight this out for you.

>Naomi,
>
>Thanks. This got me closer but I'm still missing something, probably because I just barely understand what I'm doing. That thread points to Rick Strahl's blog which offers the following code:
>
>
>public const BindingFlags MemberAccess =
>
>      BindingFlags.Public | BindingFlags.NonPublic |
>
>      BindingFlags.Static | BindingFlags.Instance | BindingFlags.IgnoreCase ;
>
>
>
>String MyTextBoxName = "txtCompany";
>
>String ValueToSet = "NewValue";
>
>
>
>// *** Get a reference to the TextBox
>
>TextBox MyTextBox = (TextBox) this.GetType().GetField(MyTextBox,BindingFlags).GetValue(this,MyTextBoxName);
>
>
>
>MyTextBox.GetType().GetProperty("Text",BindingFlags).SetValue(MyTextBox,ValueToSet,null);
>
>
>
>
>
>I have checked several times and think I typed in what he suggested accurately. Here's what I tried:
>
>
>        public const BindingFlags MemberAccess = BindingFlags.Public | BindingFlags.NonPublic |
>            BindingFlags.Static | BindingFlags.Instance | BindingFlags.IgnoreCase;
>
>        /// <summary>
>        /// Constructor
>        /// </summary>
>        public PatientMaint(int currentPatientId)
>        {
>            . . .
>            oCoverageType = (CoverageType)this.RegisterBizObj(new CoverageType());
>            . . .
>            InitializeComponent();
>            oCoverageType.GetAllData();
>
>
>            int CvgTypeCount = oCoverageType.GetRowCount();
>            //ArrayList aCvgType = new ArrayList(CvgTypeCount);
>            for (int i = 0; i < CvgTypeCount; i = i + 1)
>            {
>                oCoverageType.DataRow = oCoverageType.DataSet.Tables[0].Rows[i];
>                string CvgTypeTextBoxName = "txtCoverage" + i.ToString();
>                TextBox CvgTypeTextBox = (TextBox)this.GetType().GetField(CvgTypeTextBox, BindingFlags).GetValue(this, CvgTypeTextBoxName);
>                CvgTypeTextBox.GetType().GetProperty("Text", MemberAccess).SetValue(CvgTypeTextBox, oCoverageType.Entity.CoverageType, null);
>                //aCvgType.Add(oCoverageType.Entity.CoverageType);
>            }
>
>
>
>When I try to run this, I get a compile error: 'System.Reflection.BindingFlags' is a 'type' but is used like a 'variable'. Then I tried changing BindingFlags to MemberAccess, thinking that I needed to reference the variable name. When I do that I get the following error: Error 1 The best overloaded method match for 'System.Type.GetField(string, System.Reflection.BindingFlags)' -- Error 2 Argument '1': cannot convert from 'System.Windows.Forms.TextBox' to 'string'
>
>Any help is greatly appreciated.
>
>
>
>
>>See if this thread can help
>>Re: Converting a string to an object property Thread #1323589
>>
>>>I have a Windows form on which I need to display a series of text boxes, each displaying the value of a field from a different row of the dataset. In FoxPro, one way I have done is by using a macro to get an indirect reference to the text box name.
>>>
>>>For example:
>>>
>>>
>>>* Using the indirect reference
>>>lcBaseName = "TypeDesc"
>>>lcRowCount = 1
>>>use myTable
>>>scan
>>>    lcCurrentTextBox = lcBaseName + str(lnRowCount)
>>>    &lcCurrentTextBox.Value = myTable.TypeDesc
>>>endfor
>>>
>>>
>>>
>>>In .NET, I tried creating a variable with a type of Control and building it's name property using a counter but I couldn't get that to work.
>>>
>>>The other way I have done this in FoxPro is to set the ControlSource to an element of an array built from the table. In .NET, I tried creating an arraylist from the table and assigning an element to the BindingSource and the Text properties (not at the same time) with no success.
>>>
>>>Does anyone have any suggestions? I really don't want to hard code this if I can avoid it.
>>>
>>>Thanks in advance.
If it's not broken, fix it until it is.


My Blog
Previous
Reply
Map
View

Click here to load this message in the networking platform