我一直在尝试更改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, 我已经在这段代码上工作了好几天,我完全赞赏一些帮助:)
答案 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
}