I have the following line of code 

```
objCustomField = FindControl(oList.ID.Replace("ddl", "txt"));

```

I have inherited this page from a legacy application written in visual basic .net and I am converting it into c#.

This particular line throws this error:

> 
> Cannot convert source type 'System.Web.UI.Control' to target type 'System.Web.UI.WebControls.TextBox'
> 
> 
> 

This is the entire routine that it is contained in:

```
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 <= 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);
            }

        }

    }

```

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