我想表达的效果是这样的:一个combobox下拉框,一个按钮。每点击一下按钮,就把combobox中的数据添加到一个groupbox(原来是空的)中去,添加后,在这个数据旁边要有一个remove按钮(使用户可以将这个数据再删掉),当添加到groupbox中的数据超过一条时,再添加一个combobox(用来表示这两个数据之间的关系:或,且)在这些数据之间.这是想要实现的效果。
现在的问题是:1.不知道在添加数据到groupbox中如何动态确定它的位置(因为winform中只能用label来表示数据)
2.因为加到groupbox中的数据是未知的(多少不确定),那怎么让这些数据按照设想一条条排列起来呢?
其实效果很普遍,好多网站让用户选择自己中意的东西时就是这样先让客户选择,然后将选择的东西列在一个框里,只不过现在是用winform来实现。谢谢!!
现在的问题是:1.不知道在添加数据到groupbox中如何动态确定它的位置(因为winform中只能用label来表示数据)
2.因为加到groupbox中的数据是未知的(多少不确定),那怎么让这些数据按照设想一条条排列起来呢?
其实效果很普遍,好多网站让用户选择自己中意的东西时就是这样先让客户选择,然后将选择的东西列在一个框里,只不过现在是用winform来实现。谢谢!!
解决方案 »
- windows nt 下能不能运行 .Net 程序啊?
- 求教怎么让程序停止2秒再运行?
- 无限级动态目录树 求高手 高手
- WinForm程序如何实现皮肤更换?
- picturebox button 放在一起时候,TAB只可以选者button,我怎么选择PICTUREBOX`~
- 如何用正则表达替换?
- 呵呵,大家好,我又有问题了,请教水晶报表的高手,关于水晶报表打印的问题,我用的是Vs.net中内嵌的水晶报表;
- c#读取excel文件数据
- 采集时,如何得出被采页面的创建时间
- 是不是csdn运行有点问题了?我接不到分呢?
- 高手进。在winform里使用axWebBrowser显示一个网页,用BUTTON来激活没有问题,如果把BUTTON中的代码放在frmOnLine_Load方法下就会有问题。这是为什么呀,如何解决呢。
- 如何快速掌握XML在C#开发环境中的使用。从哪里可以快速掌握XML的常用标记、文件使用等。
1:动态确定位置的话比较简单,先算出你添加的对象的高度,这个在编码时可以确定。然后left位置不变,Top+固定调试的添加这个控件。
2:关键你的groupbox我还没明白,groupbox中你到底想添加什么?
1:左边一个Combox,有很多项。
2:用户选择这个Combox中的某一项,然后点击一个按钮,比如:添加。
3:把用户选中的这一项添加到一个ListBox中。
用户可以重复步骤2,3操作添加多个数据项。1:在ListBox的旁边放一个Remove按钮
2:用户选择ListBox中的某一项。
3:用户点击remove,从SListBox中删除这一项。
用户可以重复2,3操作删除记录。如果使用listBox则没有你说的什么排列的问题,自己的。
然后,在你的目标form里,声明一个private List<LableData> _controllst=new List<LableData>();
接着,你的添加按钮按了之后,new一个LableData,并给其中的label赋值,然后把它加到Group.Controls集合和_controllst集合中
别忘了给new出来的LableData绑定OnRemove事件,事件中把自身从Group.Controls集合和_controllst集合中删除。关于排序,写一个OrderLabelData函数,循环_controllst集合,第一个的top=0,其它的=上一个的top+上一个的height+5
每次添加/移出时,调用OrderLabelData函数
如果用listbox,则无法表达两条数据之间的关系(且还是或)
这里假如左边一个ComboBox添加时从这里取出一个项生成一个label和一个对应的remove放到GoupBox中。当GroupBox中有 label时,生成另外一个ComboBox,这个Combox里是什么数据?
你想要表达的关系是什么 和什么 之间 的关系 ?
用什么样的方式来表达这种关系 ?Radio?checkbox还是别的什么?
之所以不用listbox,是因为添加进去的数据超过两天的话,要在这些数据之间再放一个combobox,让用户来选择这两条数据的关系(或,且)
是的,添加进去的数据是或,且的关系,就像你写sql查询语句的条件时一样,那个表示关系的combobox里的数据是:or,add
左边的COMBOX是所有可能的条件,对应为某个BOOL类型的值。
添加到Groupbox当中。
不过问题在于:
1:你的“与”或者“或”是相对什么的。
比如:在groupbox中已经有2个label,假设为A,B,并且是A&B,当你新添加一项C时,假设选择是或,那么关系是什么呢?
可能是:
(A&B)|C
A&B|C
如果数据项多,这种关系是极其复杂的,它们应该如何处理呢?
所以很复杂。
综上,当你添加第一条数据时,groupbox里第一行(当个比方)一次是:一个remove按钮,和label控件(用于显示数据),一个combobox(内容是(,) )
当添加第二条数据时:groupbox里第二行依次是:一个combobox(内容是or,and )用于表示关系,一个combobox(内容是(,) ),一个remove按钮,和label控件(用于显示数据),一个combobox(内容是(,) )
依次类推
我说了,groupbox只是一个盛放控件的容器,只所以用它,是为了布局,还有就是窗体上的东西太多,用这个省地方。
我理解的样式:
comboBox(选择列) (Add button)
---------------------------------------------
label1 comboBox1(and 或者 or) (Remove button)
label2 comboBox2(and 或者 or) (Remove button)
-----------------
不知道理解的对不.
其实逻辑就像15楼说的那样。因为加到groupbox中的数据是用来作为sql查询语句的条件,所以需要知道它们之间的关系,不止我这么说,大家会不会理解
1:左边一个Combox,有很多项。
2:用户选择这个Combox中的某一项,然后点击一个按钮,比如:添加。
3:把用户选中的这一项添加到一个ListBox中。
用户可以重复步骤2,3操作添加多个数据项。 1:在ListBox的旁边放一个Remove按钮
2:用户选择ListBox中的某一项。
3:用户点击remove,从SListBox中删除这一项。
用户可以重复2,3操作删除记录。 如果使用listBox则没有你说的什么排列的问题,自己的。