0

我一直在尝试更改 html 文件中定义的复选框控件的值,此 html 文件显示在 webbrowser 控件中,并且 webbrowser 本身在 C# 中被定义为用户控件我愿意设置复选框的值来自包含我的用户控件的表单中的控件(在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,我已经在这段代码上工作了好几天,我非常感谢一些帮助:)

4

1 回答 1

2

您可以简单地做到这一点,在用户控件中设置 web-browserModifiers属性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
}
于 2013-04-11T09:01:38.523 回答