winform中combobox值相互影响的问题 有个子窗体,里面有个combobox,根据传入的参数,设置combobox的选中项。当打开多个子窗体之后,之前打开的子窗体里面的combobox的选中项都会发生改变,变成与最新打开的那个窗体的选中项的值。其他控件的值都不会受到影响,唯独combobox,请问如何解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MaintainCfgFrm maintainCfgFrm = new MaintainCfgFrm(); maintainCfgFrm.Name = "Form_" + snatchConfig.ConfigID.ToString(); maintainCfgFrm.Text = snatchConfig.ConfigName; maintainCfgFrm.MdiParent = this;// 指向父窗体 maintainCfgFrm.CurrentConfig = snatchConfig; maintainCfgFrm.Dock = DockStyle.Fill; maintainCfgFrm.Show(); combobox是怎么赋值的? 是不是绑定了某个对象? 这个没问题哈~ 难道combobox是静态的?~ 肯定是你检查不仔细。哪个地方给附值了。___________________________________我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html 或者说 combobox绑定的值是一个静态对象? 原因很简单,你绑定到同一个数据源上了这个例子里改变一个会改变另一个using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication30{ public partial class Form1 : Form { WebBrowser WB = new WebBrowser(); public Form1() { InitializeComponent(); DataTable DT = new DataTable(); DT.Columns.Add("c1"); DT.Rows.Add(new Object[] { 1 }); DT.Rows.Add(new Object[] { 2 }); DT.Rows.Add(new Object[] { 3 }); ComboBox CB1 = new ComboBox(); CB1.Parent = this; CB1.DataSource = DT; CB1.ValueMember = DT.Columns[0].ColumnName; ComboBox CB2 = new ComboBox(); CB2.Parent = this; CB2.DataSource = DT; CB2.ValueMember = DT.Columns[0].ColumnName; CB2.Location = new Point(0, 100); } }} 是的,combobox是绑定的,绑定的不是静态对象。目前暂时是通过窗体的Activated事件里重新设置combobox的Text值来解决这个问题的希望有更彻底的解决方法 如果combobox绑定了某个对象,那么这个对象改变,所有与之相关的combobox都改变了。你把你combobox赋值的代码贴出来看看。或者不要用绑定,用this.comboBox1.Items.Add(...)一条条添加试试。 ComboBox CB2 = new ComboBox(); CB2.Parent = this; DataTable DT2 = DT.Clone(); foreach (DataRow DR in DT.Rows) DT2.ImportRow(DR); CB2.DataSource = DT2; CB2.ValueMember = DT2.Columns[0].ColumnName; 不是数据源, 是数据源的 'View',如果用 DataTable, 同一个 DataTalbe, 分别创建不同的 'View', 作为下拉的数据源即可, 这个 'View' 就是 DataView,大多数情况下使用的是 table.DefaultView, 当然相互影响了.对 DataTable, 讨论过滤, 讨论排序 , 是无意义的, 也是错误的. 原因就是你 所有窗体传给combobox的值是同一个对象,也就是说绑定了同一个数据源.....解决吗..要么重新new一个数据源,要么对原来的数据源进行 深复制 重新new一个数据源不符合要求,如果多个窗体,那么就会有多份数据。既然没有好方法,就不便再探讨,结贴! 让WCF控制SQL SERVER 负载均衡 怎么样用C#不注册调用C++写的DLL控件 数据库集成进exe的问题 C#读取Excel内容(包含日文),提示外部表不是预期的格式 怎样将字符串转化为sqlCommand能接受的 郁闷中..无奈...求助 JS如何调用BHO的方法 C#程序与PLC通讯PLC收到c#程序发送过来的指令并正确相应之后为什么没有返回数据 我安装到最后一分钟时出现注册错误,各位大虾请帮忙!谢谢!给分 C#的应用范围!!""?? java写的服务端封装了一个donet代理,c#开发的手机客户端怎么调用? 如何判断几个数运算的结果是否溢出
maintainCfgFrm.Name = "Form_" + snatchConfig.ConfigID.ToString();
maintainCfgFrm.Text = snatchConfig.ConfigName;
maintainCfgFrm.MdiParent = this;// 指向父窗体
maintainCfgFrm.CurrentConfig = snatchConfig;
maintainCfgFrm.Dock = DockStyle.Fill;
maintainCfgFrm.Show();
___________________________________
我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。
http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html
或者说 combobox绑定的值是一个静态对象?
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication30
{
public partial class Form1 : Form
{
WebBrowser WB = new WebBrowser(); public Form1()
{
InitializeComponent(); DataTable DT = new DataTable();
DT.Columns.Add("c1");
DT.Rows.Add(new Object[] { 1 });
DT.Rows.Add(new Object[] { 2 });
DT.Rows.Add(new Object[] { 3 }); ComboBox CB1 = new ComboBox();
CB1.Parent = this;
CB1.DataSource = DT;
CB1.ValueMember = DT.Columns[0].ColumnName; ComboBox CB2 = new ComboBox();
CB2.Parent = this;
CB2.DataSource = DT;
CB2.ValueMember = DT.Columns[0].ColumnName;
CB2.Location = new Point(0, 100);
}
}
}
目前暂时是通过窗体的Activated事件里重新设置combobox的Text值来解决这个问题的
希望有更彻底的解决方法
或者不要用绑定,用this.comboBox1.Items.Add(...)一条条添加试试。
CB2.Parent = this;
DataTable DT2 = DT.Clone();
foreach (DataRow DR in DT.Rows)
DT2.ImportRow(DR);
CB2.DataSource = DT2;
CB2.ValueMember = DT2.Columns[0].ColumnName;
不是数据源, 是数据源的 'View',如果用 DataTable, 同一个 DataTalbe, 分别创建不同的 'View', 作为下拉的数据源即可, 这个 'View' 就是 DataView,大多数情况下使用的是 table.DefaultView, 当然相互影响了.
对 DataTable, 讨论过滤, 讨论排序 , 是无意义的, 也是错误的.
既然没有好方法,就不便再探讨,结贴!