
首先控件的排序你可以交给控件来做,选一个flowLayoutPanel,控件扔下去就自动排序了。第二你的控件是不是自定义的,如果是自定义的控件,给click参数里面赋上你要显示的属性。将所有控件都动态生成在一个事件里面,通过属性再给外面赋值。
for (int i = 0 i < 10 i++){
Button b = new Button()
this.Controls.Add(b)
b.Click += b_Click
}
void b_Click(object sender, EventArgs e)
{
//throw new NotImplementedException()
Button b = (Button)sender
MessageBox.Show(b.Text)
}
给你个简单的例子照着改改就好了。
没有具体显示过,不过你可以试试你自己定义一个类,使这个类继承LISTVIEW
然后在你写的这个类中写给LISTVIEW添加图片的属性或方法。
回为LISTVIEW的ITEM是OBJCET类型,你试试给它直接添加一个图片类型数据是否可以。
接下来要做的就行,你在用的程序中用LISTVIEW是就去实例你自己定义的这类就行了。
只是个思路行与不行还有待验证,希望对你有帮助。
树节点的图片要通过imageList 里面的图片才能获得,可以是键值,也可以是索引。我给你个例子。
稍微修改下,你就能用。你可以把Button里面代码包装成一个函数,就可以去添加了
控件就是界面的
后台代码如下:
using System
using System.Collections.Generic
using System.ComponentModel
using System.Data
using System.Diagnostics
using System.Drawing
using System.Linq
using System.Text
using System.Threading.Tasks
using System.Windows.Forms
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent()
this.treeView1.ImageList = imagelist
}
ImageList imagelist = new ImageList()
private void button1_Click(object sender, EventArgs e)
{
try
{
string filename = this.textBox1.Text.Trim()
string key = this.textBox2.Text.Trim()
Image im = Image.FromFile(filename)
imagelist.Images.Add(key,im)
string name = this.textBox3.Text.Trim()
TreeNode tn = new TreeNode(name)
tn.ImageKey = key
this.treeView1.Nodes.Add(tn)
}
catch
{
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)