TabPage中的控件绑定问题 本帖最后由 orayangy 于 2010-03-16 10:47:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TabControl中的TabPage是很奇怪,绑定的时候,如果某个TabPage没有被激活过,对象无法绑定,这一这样,在初期化的时候,用代码把每个TabPage都先选中一次,就可以绑定了 难道是要把全部的TabPage都选中一次吗? 多谢inmyownsky1 。说说我试过的方法吧。1. Form_Load(){ //所有的TabPages 激活 this.tabPage1.Show(); this.tabPage1.Hide(); this.tabPage2.Show(); this.tabPage2.Hide();}同样出错 DataSource的属性列不能绑定2.this.TextBox.DataBindings.Add("Text", tableproperty, "tableproperty.schema");this.CheckBox.DataBindings.Add("Checked", tableproperty, "tableproperty.isUpper");出错 不能生成tableproperty的子list3.this.tabControl.TabPages["Table"].Show();this.tabControl.SelectedTab.CreateControl();this.TextBox.DataBindings.Add("Text", tableproperty, "schema");this.CheckBox.DataBindings.Add("Checked", tableproperty, "isUpper");TabPages 的激活方法改变,换汤不换药,出错 DataSource的属性列不能绑定4.this.tabPage2.Show();this.tabPage2.Hide();this.tabPage1.Show();this.TextBox.DataBindings.Add("Text", tableproperty, "schema");this.CheckBox.DataBindings.Add("Checked", tableproperty, "isUpper");这个好像是2楼说的做法? 同样出错提示:抛出的例外是 ArgumentException哪位高手帮帮忙啊 this.tabControl.SelectedIndex = 3this.tabControl.SelectedIndex = 2this.tabControl.SelectedIndex = 1this.tabControl.SelectedIndex = 0这样子试试 dg1_1225谢谢你的回答。我按你的方法试了还是出错。换个思路想:1.是不是DataBindgs不能和自定义的结构体(TableProperty)绑定阿。2.DataBindgs.Add使用之前还需要定义写别的什么吗。我的程序中只用了DataBindgs。下面是我的程序this.tabControl.SelectedIndex = 3;this.tabControl.SelectedIndex = 2;this.tabControl.SelectedIndex = 1;this.tabControl.SelectedIndex = 0;//this.tabControl.SelectedTab = this.tabControl.TabPages["Table"];try{ TableProperty tableproperty = new TableProperty("dbo", false); this.TextBox.DataBindings.Add("Text", tableproperty, "schema");}catch(ArgumentException e){ MessageBox.Show(e.Message);} 自定义的结构体?这个我还真没有试过,我是用DataTable进行绑定的,没有问题 我试了试不用TabPage 的控件绑定,结果出错了!!!估计问题不是在TabPage上。 大概找到问题的答案了。参照下面的文字,自定义的结构体应该是不在绑定源范围内的当使用Binding的构造函数创建实例时,必须指定三项内容: * 要绑定到的控件属性的名称 * 数据源 * 数据源中解析为列表或属性的导航路径其中,数据源可以为: * 实现 IBindingList 或 ITypedList 的任何类。包括:DataSet、DataTable、DataView 或 DataViewManager。 * 实现 IList 的任意索引集合类。(必须在创建 Binding 之前创建和填充该集合,并且列表中的所有对象必须为同一类型,否则将引发异常) * 强类型对象的强类型 IList。 恩,应该是这样,你还是用DataTable或者List吧 问题解决了。不是自定义结构体的问题。竟然是结构体中忘了写get set方法。哎,, 请问,想用C#做QQ视频录像功能的一个软件,是否可行呢? 如何清空变量里的内容? 水晶报表 一张纸打印三张不同单据 F11和F5执行的结果不一样? 如何重绘datagrid的其中一列数据,比如原来是1,要显示为0.001 打包问题 请问有没有工具可以检测我的程序在网络中发送接收的数据量? 数据多表连接问题,请指教 wpf程序中datagrid控件自动生成的列,某一行当中的某列的数据长度不符合条件时,如何把当前行的背景改变,或者字体用红色显示? 使用C#开发窗体应用程序,实现绘制星空图如何做 求一条正则表达式 文件下載,找不到*.Config 格式的文件
难道是要把全部的TabPage都选中一次吗?
1.
Form_Load()
{
//所有的TabPages 激活
this.tabPage1.Show();
this.tabPage1.Hide(); this.tabPage2.Show();
this.tabPage2.Hide();
}
同样出错 DataSource的属性列不能绑定2.
this.TextBox.DataBindings.Add("Text", tableproperty, "tableproperty.schema");
this.CheckBox.DataBindings.Add("Checked", tableproperty, "tableproperty.isUpper");
出错 不能生成tableproperty的子list3.this.tabControl.TabPages["Table"].Show();
this.tabControl.SelectedTab.CreateControl();
this.TextBox.DataBindings.Add("Text", tableproperty, "schema");
this.CheckBox.DataBindings.Add("Checked", tableproperty, "isUpper");
TabPages 的激活方法改变,换汤不换药,出错 DataSource的属性列不能绑定4.
this.tabPage2.Show();
this.tabPage2.Hide();
this.tabPage1.Show();
this.TextBox.DataBindings.Add("Text", tableproperty, "schema");
this.CheckBox.DataBindings.Add("Checked", tableproperty, "isUpper");这个好像是2楼说的做法? 同样出错提示:抛出的例外是 ArgumentException哪位高手帮帮忙啊
this.tabControl.SelectedIndex = 2
this.tabControl.SelectedIndex = 1
this.tabControl.SelectedIndex = 0这样子试试
dg1_1225谢谢你的回答。我按你的方法试了还是出错。
换个思路想:
1.是不是DataBindgs不能和自定义的结构体(TableProperty)绑定阿。
2.DataBindgs.Add使用之前还需要定义写别的什么吗。我的程序中只用了DataBindgs。下面是我的程序
this.tabControl.SelectedIndex = 3;
this.tabControl.SelectedIndex = 2;
this.tabControl.SelectedIndex = 1;
this.tabControl.SelectedIndex = 0;
//this.tabControl.SelectedTab = this.tabControl.TabPages["Table"];
try
{
TableProperty tableproperty = new TableProperty("dbo", false);
this.TextBox.DataBindings.Add("Text", tableproperty, "schema");
}
catch(ArgumentException e)
{
MessageBox.Show(e.Message);
}
这个我还真没有试过,我是用DataTable进行绑定的,没有问题
我试了试不用TabPage 的控件绑定,结果出错了!!!
估计问题不是在TabPage上。
大概找到问题的答案了。参照下面的文字,自定义的结构体应该是不在绑定源范围内的当使用Binding的构造函数创建实例时,必须指定三项内容: * 要绑定到的控件属性的名称
* 数据源
* 数据源中解析为列表或属性的导航路径其中,数据源可以为: * 实现 IBindingList 或 ITypedList 的任何类。包括:DataSet、DataTable、DataView 或 DataViewManager。
* 实现 IList 的任意索引集合类。(必须在创建 Binding 之前创建和填充该集合,并且列表中的所有对象必须为同一类型,否则将引发异常)
* 强类型对象的强类型 IList。
不是自定义结构体的问题。竟然是结构体中忘了写get set方法。哎,,