日期:2014-05-17  浏览次数:21285 次

求教:关于C#中ListView控件Item图标大小的问题
是最近的一个项目,需要做一些修改,其中就是ListView中Item的图表需要改大一点。其实图表本身的大小是32×32的,图中的图标远小于其实际尺寸,不知为何,而且图标也没有显示完全。这点感觉没有MFC中的ListCtrl好用。

下面附上代码,希望有人能够给点指导,怎样才能让图标显示其正常尺寸。



//设置ListView中Item的间距,引入相关的动态链接库
        [DllImport("User32.dll")]
        //声明需要用到的消息发送函数
        private static extern int SendMessage(int Handle, int wMsg, int wParam, int lParam);
        //需要用到的相关参数
        const int LVM_FIRST = 0x1000;
        const int LVM_SETICONSPACING = LVM_FIRST + 53;
        //动态库中的系统函数,用来设置ListView控件中Item的间距
        public static void SetListViewItemSpacing(ListView lst, int x, int y)
        {
            SendMessage(lst.Handle.ToInt32(), LVM_SETICONSPACING, 0, y * 65536 + x);
        }

        //窗体构造函数
        public FormOperate()
        {
            InitializeComponent();
        }

        //串口初始化函数
        private int InitComm()
        {
            serialPort1.PortName = "COM9";
            serialPort1.BaudRate = 38400;
            serialPort1.DataBits = 8;
            serialPort1.StopBits = StopBits.One;
            serialPort1.Parity = Parity.None;
            serialPort1.Handshake = Handshake.None;
            return 0;
        }

        //网络接收初始化函数
        private bool InitSocket()
        {
            IPEndPoint e = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6000);
            UdpClient u = new UdpClient(e);
            m_udpState.u = u;
            u.BeginReceive(new AsyncCallback(ReceiveCallback), m_udpState);
            return true;
        }

        //异步接收的回调函数,网络数据的处理
  &