更改hbr文件中定义的复选框的值,如webbrowser中所示,webbrowser在usercontrol中定义

时间:2013-04-04 05:25:34

标签: c# user-controls webbrowser-control

我一直在尝试更改html文件中定义的复选框控件的值,这个html文件显示在webbrowser控件中,webbrowser本身被定义为C#中的用户控件 我愿意从包含我的usercontrol的表单设置复选框控件的值(在html文件和用户控件中定义) 用户控制中的相关代码:

    public bool _checkBoxProperty
    {
        set
        {
            if (webBrowser1.Document != null && webBrowser1.Document.GetElementById("Checkbox1") != null)
            {
                bool s = false;
                string chpro = webBrowser1.Document.GetElementById("Checkbox1").GetAttribute("checked").ToString();
                if (chpro == "false")
                    s = false;
                s = value;
                webBrowser1.Document.GetElementById("Checkbox1").SetAttribute("checked", value.ToString());
            }
        }
        get
        {
            if (webBrowser1.Document != null && webBrowser1.Document.GetElementById("Checkbox1") != null)
            {
                {
                    string bls = webBrowser1.Document.GetElementById("Checkbox1").GetAttribute("checked");
                        return Convert.ToBoolean(bls);
                }
            }
            else
                return false;
        }
    }

这段代码在我的表单中带来了checkbox属性,我可以设置它的值,但是当我运行程序时,它会将自身重置为null, 我已经在这段代码上工作了好几天,我完全赞赏一些帮助:)

1 个答案:

答案 0 :(得分:2)

您可以这样做,在用户控件中将网络浏览器属性Modifiers设置为Public

在您的表单中,您可以直接访问网络浏览器:例如:

   private void Form1_Load_1(object sender, EventArgs e)
    {
        userControl11.usercontrolbrowser.DocumentText="htmlfile";
        userControl11.usercontrolbrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(usercontrolbrowser_DocumentCompleted);
    }

    void usercontrolbrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        //get
        userControl11.usercontrolbrowser.Document.GetElementById("Checkbox1").GetAttribute("checked");
        //set
        userControl11.usercontrolbrowser.Document.GetElementById("Checkbox1").SetAttribute("checked",true or false value);
    }

在OOP中:

用户控制代码

 public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

        public bool _checkBoxProperty
        {
            get
            {
                if (usercontrolbrowser.Document != null)
                {
                    return Convert.ToBoolean(usercontrolbrowser.Document.GetElementById("Checkbox1").GetAttribute("checked"));
                }
                else
                {
                    return false;//error
                }
            }

            set
            {
                if (usercontrolbrowser.Document != null)
                {
                    usercontrolbrowser.Document.GetElementById("Checkbox1").SetAttribute("checked", value.ToString());
                }
            }
        }
        public void DocHtml(string dochtml)
        {
            usercontrolbrowser.DocumentText = dochtml;
        }

    }

表格代码

private void Form1_Load_1(object sender, EventArgs e)
{
    userControl11.DocHtml("htmlfile");
}

private void getcheckbox()
{
    var getval= userControl11._checkBoxProperty;
    userControl11._checkBoxProperty = false;//set value
}