一个奇怪的程序

sowinwork 2015-10-02 02:09:17

public void lblTextList(Control parentControl,DataGridView dgv)
{
List<string> ls = new List<string>();
foreach (Control lbs in parentControl.Controls)
{
if (lbs.GetType().ToString() == "System.Windows.Forms.Label")
{
ls.Add(lbs.Text);
}
}
dgv.DataSource = ls.ToList();
}


调用lblTextList(tabPage13,dataGridView1)的结果居然是,控件中的lbs.Text的长度,而非lbs.Text本身

实在无办法解决,求答疑。。。。。。。。。。。。。。
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sowinwork 2015-10-02
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
gridview能显示是public 的属性,你的数据对象是string,它public的属性就一个Length,没错啊,如果你要显示string的话,你得用个对象去包含这个字符串
老大,那应该怎样改啊,我查半天资料了,还弄不出。目的就是将界面上所有的Label的Text加到表中
sowinwork 2015-10-02
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
当然你也可以写
var query = from Control c in parentControl.Controls
            where c is Label
            select ((Label)c).Text;
或者
var query = from Control c in parentControl.Controls
            let x = c as Label
            where x!=null
            select x.Text;
之类的。 总之,计算 .Text 时是明确地对 Label 类型的(变量引用)对象类型接口的操作。而你的 .Text 不知道是什么意思,甚至令人怀疑你那里是否真的编译通过了?!
public void lblTextList(Control parentControl,DataGridView dgv) { var query = from Control c in parentControl.Controls where c is Label select ((Label)c).Text; dgv.DataSource = query.ToList(); } 改成这个,依然得到的是长度。。。。。。。。。。。。。真郁闷!
  • 打赏
  • 举报
回复
gridview能显示是public 的属性,你的数据对象是string,它public的属性就一个Length,没错啊,如果你要显示string的话,你得用个对象去包含这个字符串
  • 打赏
  • 举报
回复
看一下这个问题的知识点。进行面向对象编程,首先要学会面向类型/接口编程。如果不能认清类型/接口就盲目写一些什么代码,那么就容易什么都“无法解决”了。如果认清了了类型/接口,再来说别的,则容易解决概念问题。
  • 打赏
  • 举报
回复
当然你也可以写
var query = from Control c in parentControl.Controls
            where c is Label
            select ((Label)c).Text;
或者
var query = from Control c in parentControl.Controls
            let x = c as Label
            where x!=null
            select x.Text;
之类的。 总之,计算 .Text 时是明确地对 Label 类型的(变量引用)对象类型接口的操作。而你的 .Text 不知道是什么意思,甚至令人怀疑你那里是否真的编译通过了?!
  • 打赏
  • 举报
回复
var query = from c in parentControl.Controls.Cast<Control>() where c is Label select ((Label)c).Text;

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧