title: Cannot convert source type 'System.Web.UI.Control' to target type 'System.Web.UI.WebControls.TextBox'
body: <p>I have the following line of code </p>
  
  <pre><code>objCustomField = FindControl(oList.ID.Replace("ddl", "txt"));
  </code></pre>
  
  <p>I have inherited this page from a legacy application written in visual basic .net and I am converting it into c#.</p>
  
  <p>This particular line throws this error:</p>
  
  <blockquote>
    <p>Cannot convert source type 'System.Web.UI.Control' to target type 'System.Web.UI.WebControls.TextBox'</p>
  </blockquote>
  
  <p>This is the entire routine that it is contained in:</p>
  
  <pre><code>private void PopulateDecodeDropDown(ref DropDownList oList, string vListItems, int vValueIndex, int vTextIndex, string vSelectedValue, string vCustomText , ref TextBox oCustomField, bool vIncludeBlank = true, string vBlankText = "", string vBlankValue = "")
      {
  
  
          TextBox objCustomField = default(TextBox);
          ListItem objItem = default(ListItem);
          string[] arItems = vListItems.Split(Convert.ToChar("|"));  //added syntax to convert from string to Char 10/21/15 Max //
  
  
          oList.Items.Clear();
  
  
          if (vIncludeBlank == true)
          {
              objItem = new ListItem();
              var _with7 = objItem;
              objItem.Value = vBlankValue;
              objItem.Text = vBlankText;
              oList.Items.Add(objItem);
          }
  
          if (!string.IsNullOrEmpty(vCustomText))
          {
              objItem = new ListItem();
              var _with8 = objItem;
              objItem.Value = "-1";
              objItem.Text = vCustomText;
              oList.Items.Add(objItem);
          }
  
          for (n = 0; n &lt;= arItems.Count() - 1; n++)
          {
              objItem = new ListItem();
              var _with9 = objItem;
              objItem.Value = mobjFormat.StripObjectToString(arItems[n]);  //added square brackets to arItems to facilitate array 10/21/15 Max //
              objItem.Text = mobjFormat.StripObjectToString(arItems[n]);  //added square brackets to arItems to facilitate array 10/21/15 Max //
              oList.Items.Add(objItem);
          }
  
          try
          {
              //set the value
              oList.SelectedValue = vSelectedValue;
  
              //if for some reason the value selected is different then
              //we need to show custom something when wrong
              if (oList.SelectedValue != vSelectedValue)
              {
  
                  if (!string.IsNullOrEmpty(vCustomText))
                  {
                      objCustomField = FindControl(oList.ID.Replace("ddl", "txt"));
                      //DropDownList objCustomField = (DropDownList) FindControl(oList.ID.Replace("ddl", "txt"));
                      oList.SelectedValue = "-1";  //added double quotes to facilitate conversion to string 10/21/15 Max //
                      oCustomField.Text = vSelectedValue;
                      oCustomField.Style.Add("display", "");  //changed to c# syntax 10/21/15 Max //
                  }
                  else
                  {
                      objItem = new ListItem();
                      var _with10 = objItem;
                      objItem.Value = Strings.Trim(arItems(vSelectedValue));
                      objItem.Text = Strings.Trim(arItems(vSelectedValue));
                      oList.Items.Add(objItem);
                  }
  
  
              }
  
          }
          catch (Exception ex)
          {
  
              if (!string.IsNullOrEmpty(vCustomText))
              {
                  objCustomField = FindControl(oList.ID.Replace("ddl", "txt"));
                  oList.SelectedValue = -1;
                  oCustomField.Text = vSelectedValue;
                  oCustomField.Style.Item("display") = "";
              }
              else
              {
                  objItem = new ListItem();
                  var _with11 = objItem;
                  objItem.Value = Strings.Trim(arItems(vSelectedValue));
                  objItem.Text = Strings.Trim(arItems(vSelectedValue));
                  oList.Items.Add(objItem);
              }
  
          }
  
      }
  </code></pre>
  
  <p>I know there are several other syntactical errors in this as well but this error is a new one to me.  Has anyone came across this error or perhaps could explain it to me </p>