0

ControlC# で属性を a に追加できるかどうか知りたいです。

パラメータでオブジェクトを受け取るメソッドがあります:

    public void CreateTooltip(Object controltoadd = null)
    {
        var myDiv = new HtmlGenericControl("div");
        myDiv.Attributes.Add("width", "100%");

        myDiv.Attributes.Add("onmouseover", "ShowHint('" + this.GetType() + "','test');");
        myDiv.Attributes.Add("onmouseout", "HideHint();");

        if (controltoadd == null)
        {
            List<Control> listcc = new List<Control>();

            for (int i = 0; i < this.Controls.Count; i++)
            {
                Control cc = this.Controls[i];
                string test = cc.GetType().ToString();
                listcc.Add(cc);
            }

            this.Controls.Clear();

            for (int i = 0; i < listcc.Count; i++)
            {
                Control cc = listcc[i];
                myDiv.Controls.Add(cc);
            }
        }
        else
        {
            Control cc = (Control)controltoadd;

            //Don't know what to do here...
        }

        this.Controls.Add(myDiv);
    }

オブジェクトが null の場合は、 を作成してから、必要なHtmlGenericControl("div")を追加しAttributesます。しかし、問題は、オブジェクトが null ではない場合です。オブジェクトを に変換するControlと、プロパティAttributesが使用できなくなります。パラメータで受け取ったオブジェクトのタイプがわからないため、コントロールを使用します。

4

2 に答える 2

2

WebControlあなたはそれを aまたは aとしてキャストする必要がありHtmlGenericControlます。Controlプロパティが含まれていませんAttributes。を使用して、渡すオブジェクトが何であるかをテストできますis

if (control is WebControl)
{
    var webControl = (WebControl)control;
}

または、使用したい場合as

var webControl = control as WebControl;

if (webcontrol != null)
{
    // code
}
于 2013-09-04T15:26:20.680 に答える