一小段错误代码求解决 if (rb.Text == strtxt)-》 if (rb!=null && rb.Text == strtxt){ } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls) 谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)Panel panel = this.Controls.OfType<Panel>().Where(p => p.Name = "").SingleOrDefault();try 谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)Panel panel = this.Controls.OfType<Panel>().Where(p => p.Name = "").SingleOrDefault();try谢谢,看不太懂啊,p 是哪儿来的? 看了一下,oc 没有取到值,为null;下面的方法好像不正确Panel oc = (Panel)Controls[radioname]; 谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)Panel panel = this.Controls.OfType<Panel>().Where(p => p.Name = "").SingleOrDefault();try谢谢,看不太懂啊,p 是哪儿来的?http://msdn.microsoft.com/zh-cn/library/bb397676.aspx 名称 / 值 / 类型(Panel)Controls[radioname] / null / System.Windows.Forms.PanelControls / {System.Windows.Forms.Form.ControlCollection} / System.Windows.Forms.Control.ControlCollection {System.Windows.Forms.Form.ControlCollection}Controls[radioname] / null / System.Windows.Forms.Controloc / null / System.Windows.Forms.Panel Panel oc = (Panel)Controls[radioname]; 不用想肯定是这句了有问题。一般 出现这种问题 都是 从 FORM 或者 Controls取值出错。 private void setRadio(string strtxt,string radioname){ Panel oc = (Panel)Controls[radioname]; foreach (Control ctrl in oc.Controls){ if (ctrl is RadioButton) { if (((RadioButton)ctrl).Text == strtxt){ ((RadioButton)ctrl).Checked = true; break; } } }} 看了一下,oc 没有取到值,为null;下面的方法好像不正确Panel oc = (Panel)Controls[radioname]; 传值要传Panel的Name才行,不然会取不到Panel,看这命名方式,是不是传成别的控件名了? 看了一下,oc 没有取到值,为null;下面的方法好像不正确Panel oc = (Panel)Controls[radioname]; 传值要传Panel的Name才行,不然会取不到Panel,看这命名方式,是不是传成别的控件名了?不会的,radioname 就是要获取的控件名称,不用变量,直接用此控件名就没问题。 radio如果在panel上就要用panl1.Controls,直接用Controls肯定取不到,不明白去看下Form.Designer.cs里怎么添加控件就明白了 Panel oc = (Panel)Controls[radioname];Panel oc = Controls[radioname] as Panel;if(oc!=null){//...} radio如果在panel上就要用panl1.Controls,直接用Controls肯定取不到,不明白去看下Form.Designer.cs里怎么添加控件就明白了radioname 只是乱写的变量名Panel oc = (Panel)Controls[radioname]; 是取Panel控件,和radiobutton没关联 谢谢,这个方法我试过了,也取不到Panel的值! 谢谢,这个方法我试过了,也取不到Panel的值!我这个只能说是可以解决“未将对象引用到对象实例”的错误,你没有取到Panel的值是你的方法不正确,Winform里边看看有没有FindControl方法取值的 谢谢,这个方法我试过了,也取不到Panel的值!我这个只能说是可以解决“未将对象引用到对象实例”的错误,你没有取到Panel的值是你的方法不正确,Winform里边看看有没有FindControl方法取值的WinForm中可以使用这个函数? 你妹明白我说的,我说的意思是无论什么控件你都得去它的容器的里才能取到控件对象,Controls是什么,是Forms.Controls,如果没有执行Controls.Add,你再怎么取也取不到你要的panel,所以让你去design里查看到底是哪个控件的Controls里add你要的panel Panel oc = (Panel)Controls[radioname];应该是这行代码出了问题?Controls[radioname] 可能不是 panel, 转换的结果是 null 谢谢各位,问题已解决,panel 是在 groupbox 下,所以无法取到。 Panel oc = (Panel)groupbox1.Controls[radioname];?为什么不直接把panel用在这里?或是写成:private void setRadio(string strtxt,Panel p){ foreach (Control ctrl in p.Controls){ if (ctrl is RadioButton) { RadioButton rb = ctrl as RadioButton; if (rb.Text == strtxt){ rb.Checked = true; break; } } }} js C# 导出oracle数据。执行到一半中止。<Shift>+<F5>“终止调试”会接着执行完。 #if 跟if有什么区别,什么时候用#if? MP4视频压缩方法(急) 关于反射的一些问题,请教高手! 急急急!!1C#新手求助!!! new生存期 表格被充开啦 textBox的小问题 C#、SQL Server 2000 站内所搜代码,怎么加详细链接 DataGridView的KeyPress在单元格编辑模式下不能触发?
谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)
谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)Panel panel = this.Controls.OfType<Panel>().Where(p => p.Name = "").SingleOrDefault();try
谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)Panel panel = this.Controls.OfType<Panel>().Where(p => p.Name = "").SingleOrDefault();try谢谢,看不太懂啊,p 是哪儿来的?
看了一下,oc 没有取到值,为null;下面的方法好像不正确
Panel oc = (Panel)Controls[radioname];
谢谢,不是!如果Panel控件不用变量代替,直接用控件名可以通过。例如 foreach (Control ctrl in panl1.Controls)Panel panel = this.Controls.OfType<Panel>().Where(p => p.Name = "").SingleOrDefault();try谢谢,看不太懂啊,p 是哪儿来的?
http://msdn.microsoft.com/zh-cn/library/bb397676.aspx
(Panel)Controls[radioname] / null / System.Windows.Forms.Panel
Controls / {System.Windows.Forms.Form.ControlCollection} / System.Windows.Forms.Control.ControlCollection {System.Windows.Forms.Form.ControlCollection}Controls[radioname] / null / System.Windows.Forms.Control
oc / null / System.Windows.Forms.Panel
不用想肯定是这句了有问题。
一般 出现这种问题 都是 从 FORM 或者 Controls取值出错。
Panel oc = (Panel)Controls[radioname];
foreach (Control ctrl in oc.Controls){
if (ctrl is RadioButton) {
if (((RadioButton)ctrl).Text == strtxt){
((RadioButton)ctrl).Checked = true;
break;
}
}
}
}
看了一下,oc 没有取到值,为null;下面的方法好像不正确
Panel oc = (Panel)Controls[radioname]; 传值要传Panel的Name才行,不然会取不到Panel,看这命名方式,是不是传成别的控件名了?
看了一下,oc 没有取到值,为null;下面的方法好像不正确
Panel oc = (Panel)Controls[radioname]; 传值要传Panel的Name才行,不然会取不到Panel,看这命名方式,是不是传成别的控件名了?不会的,radioname 就是要获取的控件名称,不用变量,直接用此控件名就没问题。
Panel oc = Controls[radioname] as Panel;
if(oc!=null)
{
//...
}
谢谢,这个方法我试过了,也取不到Panel的值!
谢谢,这个方法我试过了,也取不到Panel的值!我这个只能说是可以解决“未将对象引用到对象实例”的错误,你没有取到Panel的值是你的方法不正确,Winform里边看看有没有FindControl方法取值的
谢谢,这个方法我试过了,也取不到Panel的值!我这个只能说是可以解决“未将对象引用到对象实例”的错误,你没有取到Panel的值是你的方法不正确,Winform里边看看有没有FindControl方法取值的WinForm中可以使用这个函数?
Panel oc = (Panel)Controls[radioname];应该是这行代码出了问题?
Controls[radioname] 可能不是 panel, 转换的结果是 null
为什么不直接把panel用在这里?或是写成:private void setRadio(string strtxt,Panel p){
foreach (Control ctrl in p.Controls){
if (ctrl is RadioButton) {
RadioButton rb = ctrl as RadioButton;
if (rb.Text == strtxt){
rb.Checked = true;
break;
}
}
}
}