当前位置:编程学习 > C#/ASP.NET >>

Listview CheckBoX 挡住数据项

--------------------编程问答-------------------- 那要看你是怎么设置的。 --------------------编程问答--------------------
引用 1 楼 guwei4037 的回复:
那要看你是怎么设置的。

只是将VIEW 格式设置为 LargeIcon
然后设置CheckBox 属性 为 true 
就出现上述图片现象了 --------------------编程问答--------------------
引用 2 楼 y306237357 的回复:
Quote: 引用 1 楼 guwei4037 的回复:

那要看你是怎么设置的。

只是将VIEW 格式设置为 LargeIcon
然后设置CheckBox 属性 为 true 
就出现上述图片现象了

我按照你说的设置了,是正常的显示,并没有像你这样。 --------------------编程问答--------------------
引用 3 楼 guwei4037 的回复:
Quote: 引用 2 楼 y306237357 的回复:

Quote: 引用 1 楼 guwei4037 的回复:

那要看你是怎么设置的。

只是将VIEW 格式设置为 LargeIcon
然后设置CheckBox 属性 为 true 
就出现上述图片现象了

我按照你说的设置了,是正常的显示,并没有像你这样。

不会吧,我把代码给你,你再试试。谢谢了!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace ListViewTest
{
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();            
        }
        private void DataFill()
        {
            ColumnHeader ch = new ColumnHeader();
            ch.Text = "列标题1";
            ch.Width = 120;
            ch.TextAlign = HorizontalAlignment.Left;
            this.listView1.Columns.Add(ch);
            this.listView1.BeginUpdate();
            for (int i = 0; i < 10; i++)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.ImageIndex = i;
                lvi.Text = "Item" + i;
                this.listView1.Items.Add(lvi);
            }
            this.listView1.SmallImageList = this.smallImageList;
            this.listView1.LargeImageList = this.largeImageList;
            this.listView1.EndUpdate();  
        }
//button 填充数据
        private void Btn_FillData_Click(object sender, EventArgs e)
        {
            DataFill();
        }
//comboBox 转换边框
        private void cmbxBordStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbxBordStyle.SelectedIndex)
            { 
                case 0:
                    listView1.BorderStyle = BorderStyle.None;
                    break;
                case 1:
                    listView1.BorderStyle = BorderStyle.FixedSingle;
                    break;
                case 2:
                    listView1.BorderStyle = BorderStyle.Fixed3D;
                    break;
            }
        }
//comboBox 转换对齐方式
        private void cmbxAheadStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbxAheadStyle.SelectedIndex)
            {
                case 0:
                    listView1.Alignment =  ListViewAlignment.Default;
                    break;
                case 1:
                    listView1.Alignment = ListViewAlignment.Left;
                    break;
                case 2:
                    listView1.Alignment = ListViewAlignment.Top;
                    break;
                case 3:
                    listView1.Alignment = ListViewAlignment.SnapToGrid;
                    break;
            }
        }
//comboBox 转换View
        private void cmbxViewStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbxViewStyle.SelectedIndex)
            {
                case 0:
                    listView1.View = View.LargeIcon;
                    break;
                case 1:
                    listView1.View = View.SmallIcon;;
                    break;
                case 2:
                    listView1.View = View.List;
                    break;
                case 3:
                    listView1.CheckBoxes = false;
                    listView1.View = View.Tile;                 
                    break;
                case 4:
                    listView1.View = View.Details;
                    listView1.GridLines = true;
                    break;
            }
        }
//comboBox 详细信息下转换列表头模式
        private void cmbxClmHeadStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbxClmHeadStyle.SelectedIndex)
            {
                case 0:
                    listView1.HeaderStyle = ColumnHeaderStyle.None;
                    break;
                case 1:
                    listView1.HeaderStyle =  ColumnHeaderStyle.Nonclickable;
                    break;
                case 2:
                    listView1.HeaderStyle = ColumnHeaderStyle.Clickable;
                    break;
            }
        }
//checkbox转换是否显示Checkbox
        private void chkBxIShowBox_CheckedChanged(object sender, EventArgs e)
        {
            if (listView1.View != View.Tile)
            {
                listView1.CheckBoxes = chkBxIShowBox.Checked;
            }
        }
//comboBox 切换排序方式
        private void cmbxSortStyle_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbxSortStyle.SelectedIndex)
            {
                case 0:
                    listView1.Sorting = SortOrder.None; 
                    break;
                case 1:
                    listView1.Sorting =  SortOrder.Ascending;
                    break;
                case 2:
                    listView1.Sorting = SortOrder.Descending;
                    break;
            }
        }
}
--------------------编程问答-------------------- 你的代码我试过了,少东西编译不通过。这么长的代码您能上传到类似百度网盘之类的地方,方便调试呢? --------------------编程问答--------------------
引用 5 楼 guwei4037 的回复:
你的代码我试过了,少东西编译不通过。这么长的代码您能上传到类似百度网盘之类的地方,方便调试呢?

代码打包 我测试了 能运行
百度网盘地址:http://pan.baidu.com/s/19YNHw --------------------编程问答--------------------
引用 6 楼 y306237357 的回复:
Quote: 引用 5 楼 guwei4037 的回复:

你的代码我试过了,少东西编译不通过。这么长的代码您能上传到类似百度网盘之类的地方,方便调试呢?

代码打包 我测试了 能运行
百度网盘地址:http://pan.baidu.com/s/19YNHw

xp系统会出现上面的问题,win7是正常的 --------------------编程问答-------------------- 刚发动了群友测试你的问题。发现在win7、win8系统正常显示,而在xp、2003会出现你这样的问题。 --------------------编程问答--------------------
引用 8 楼 guwei4037 的回复:
刚发动了群友测试你的问题。发现在win7、win8系统正常显示,而在xp、2003会出现你这样的问题。

Xp上有解决方法么?
求教 --------------------编程问答-------------------- 自己顶一顶··· --------------------编程问答-------------------- 帮顶,看看有没有人会的。 --------------------编程问答-------------------- 通过设置控件大图标LargeImageList,可以绕开此问题。这只是治标不治本。

this.listView1.LargeImageList = this.largeImageList;
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,