Winforms XtratreList中的图像列存在问题

Winforms XtratreList中的图像列存在问题,winforms,devexpress,xtratreelist,Winforms,Devexpress,Xtratreelist,我使用XtratreList控件 共有两列:第一列用于文本,第二列用于图标 问题:我无法更改默认图标(相应imagelist中的索引为零)。imagelist中有3个图像 例如,我需要显示位于索引2处的图标 代码 这项任务应该使用稍微不同的方法来实现。首先,应该使用RepositoryItemImageComboBox并填充其Items属性。每个项目都有值和ImageIndex。树列表将在单元格图像中显示其值等于单元格值的项目。以下是适用于您的代码: TreeListColumn

我使用XtratreList控件

共有两列:第一列用于文本,第二列用于图标

问题:我无法更改默认图标(相应imagelist中的索引为零)。imagelist中有3个图像

例如,我需要显示位于索引2处的图标

代码


这项任务应该使用稍微不同的方法来实现。首先,应该使用RepositoryItemImageComboBox并填充其Items属性。每个项目都有值和ImageIndex。树列表将在单元格图像中显示其值等于单元格值的项目。以下是适用于您的代码:

        TreeListColumn col = treeList1.Columns.Add();
        col.Caption = "Text";
        col.Visible = true;

        TreeListColumn colImage = treeList1.Columns.Add();
        colImage.Caption = "ImageColumn";
        colImage.Visible = true;


        RepositoryItemImageComboBox imageEdit = new RepositoryItemImageComboBox();
        imageEdit.SmallImages = imageList;
        for(int i = 0; i < 3; i++)
            imageEdit.Items.Add(new ImageComboBoxItem(i, i)); // i.e. value and image index

        treeList1.RepositoryItems.Add(imageEdit);
        colImage.ColumnEdit = imageEdit;

        treeList1.BeginUnboundLoad();

        TreeListNode node = treeList1.AppendNode(new object[] { "trololo", 2 }, null);

        node.SetValue(colImage.AbsoluteIndex, 2);

        treeList1.EndUnboundLoad();
TreeListColumn col=treeList1.Columns.Add();
col.Caption=“Text”;
可见=真实;
TreeListColumn colImage=treeList1.Columns.Add();
colImage.Caption=“ImageColumn”;
colImage.Visible=true;
RepositoryItemImageComboBox imageEdit=新建RepositoryItemImageComboBox();
imageEdit.SmallImages=imageList;
对于(int i=0;i<3;i++)
imageEdit.Items.Add(新的ImageComboBoxItem(i,i));//i、 e.价值和图像索引
treeList1.RepositoryItems.Add(imageEdit);
colImage.ColumnEdit=imageEdit;
treeList1.BeginUnboundLoad();
TreeListNode=treeList1.AppendNode(新对象[]{“trololo”,2},null);
node.SetValue(colImage.AbsoluteIndex,2);
treeList1.EndUnboundLoad();

应使用稍微不同的方法执行此任务。首先,应该使用RepositoryItemImageComboBox并填充其Items属性。每个项目都有值和ImageIndex。树列表将在单元格图像中显示其值等于单元格值的项目。以下是适用于您的代码:

        TreeListColumn col = treeList1.Columns.Add();
        col.Caption = "Text";
        col.Visible = true;

        TreeListColumn colImage = treeList1.Columns.Add();
        colImage.Caption = "ImageColumn";
        colImage.Visible = true;


        RepositoryItemImageComboBox imageEdit = new RepositoryItemImageComboBox();
        imageEdit.SmallImages = imageList;
        for(int i = 0; i < 3; i++)
            imageEdit.Items.Add(new ImageComboBoxItem(i, i)); // i.e. value and image index

        treeList1.RepositoryItems.Add(imageEdit);
        colImage.ColumnEdit = imageEdit;

        treeList1.BeginUnboundLoad();

        TreeListNode node = treeList1.AppendNode(new object[] { "trololo", 2 }, null);

        node.SetValue(colImage.AbsoluteIndex, 2);

        treeList1.EndUnboundLoad();
TreeListColumn col=treeList1.Columns.Add();
col.Caption=“Text”;
可见=真实;
TreeListColumn colImage=treeList1.Columns.Add();
colImage.Caption=“ImageColumn”;
colImage.Visible=true;
RepositoryItemImageComboBox imageEdit=新建RepositoryItemImageComboBox();
imageEdit.SmallImages=imageList;
对于(int i=0;i<3;i++)
imageEdit.Items.Add(新的ImageComboBoxItem(i,i));//i、 e.价值和图像索引
treeList1.RepositoryItems.Add(imageEdit);
colImage.ColumnEdit=imageEdit;
treeList1.BeginUnboundLoad();
TreeListNode=treeList1.AppendNode(新对象[]{“trololo”,2},null);
node.SetValue(colImage.AbsoluteIndex,2);
treeList1.EndUnboundLoad();
谢谢大家

使用RepositoryItemPictureEdit解决了我的问题。有点复杂,但能用

 TreeListColumn col = treeList1.Columns.Add();
            col.Caption = "Text";
            col.Visible = true;

            TreeListColumn colImage = treeList1.Columns.Add();
            colImage.Caption = "ImageColumn";
            colImage.Visible = true;

            RepositoryItemPictureEdit imageEdit = new RepositoryItemPictureEdit();
            imageEdit.ShowMenu = false;

            treeList1.RepositoryItems.Add(imageEdit);
            colImage.ColumnEdit = imageEdit;

            treeList1.BeginUnboundLoad();

            Image img = imageList.Images[1];
            Bitmap bmp = new Bitmap(img);

            TreeListNode node = treeList1.AppendNode(new object[] { "trololo", bmp }, null);


            treeList1.EndUnboundLoad();
谢谢大家

使用RepositoryItemPictureEdit解决了我的问题。有点复杂,但能用

 TreeListColumn col = treeList1.Columns.Add();
            col.Caption = "Text";
            col.Visible = true;

            TreeListColumn colImage = treeList1.Columns.Add();
            colImage.Caption = "ImageColumn";
            colImage.Visible = true;

            RepositoryItemPictureEdit imageEdit = new RepositoryItemPictureEdit();
            imageEdit.ShowMenu = false;

            treeList1.RepositoryItems.Add(imageEdit);
            colImage.ColumnEdit = imageEdit;

            treeList1.BeginUnboundLoad();

            Image img = imageList.Images[1];
            Bitmap bmp = new Bitmap(img);

            TreeListNode node = treeList1.AppendNode(new object[] { "trololo", bmp }, null);


            treeList1.EndUnboundLoad();

是否希望节点旁边有不同的图标(如VisuaStudio中的解决方案资源管理器)?或者另一列中的图像?另一列中的图像,这就是为什么我必须使用XtraTreeList而不是标准的TreeView您希望在节点旁边有不同的图标(如visua studio中的解决方案资源管理器)?或者另一列中的图像?另一列中的图像,这就是为什么我必须使用XtraTreeList而不是标准的TreeViewHanks来解决问题。但我只需要显示牢房里的图像。我不需要组合框。只有简单的图像。在我看来,这是一项非常简单的任务。这就是我使用RepositoryItemImageEdit的原因。我认为,如果组合框按钮被隐藏,这个解决方案将适用于您,除非您想用图像完全填充单元格。@DevExpress团队,我认为这行
node.SetValue(colImage.AbsoluteIndex,2)可以删除,对吗?@DevExpress团队,组合框按钮将始终出现?还是有可能把它藏起来?对不起,我不在办公室。可以使用@manji发布的代码隐藏按钮。谢谢您的解决方案。但我只需要显示牢房里的图像。我不需要组合框。只有简单的图像。在我看来,这是一项非常简单的任务。这就是我使用RepositoryItemImageEdit的原因。我认为,如果组合框按钮被隐藏,这个解决方案将适用于您,除非您想用图像完全填充单元格。@DevExpress团队,我认为这行
node.SetValue(colImage.AbsoluteIndex,2)可以删除,对吗?@DevExpress团队,组合框按钮将始终出现?还是有可能把它藏起来?对不起,我不在办公室。可以使用@manji发布的代码隐藏按钮。