zoukankan      html  css  js  c++  java
  • WinCE设置DataGrid行高

    /// <summary>
    /// 设置DataGrid所有行的行高
    /// </summary>
    /// <param name="dg">DataGrid对象</param>
    /// <param name="cy">行高</param>
    public void SetGridDefaultRowHeight(DataGrid dg, int cy)
    {
        FieldInfo fi = dg.GetType().GetField("m_cyRow",
                        BindingFlags.NonPublic |
                        BindingFlags.Static |
                        BindingFlags.Instance);
        fi.SetValue(dg, cy);
        dg.GetType().GetMethod("_DataRebind",
                         BindingFlags.NonPublic |
                         BindingFlags.Static |
                         BindingFlags.Instance).Invoke(dg, new object[] { });
    }
    /// <summary>
    /// 设置指定行的行高
    /// </summary>
    /// <param name="dg">DataGrid对象</param>
    /// <param name="nRow">行索引</param>
    /// <param name="cy">行高</param>
    public void SetGridRowHeight(DataGrid dg, int nRow, int cy)
    {
        ArrayList arrRows = (ArrayList)dg.GetType().GetField("m_rlrow",
                        BindingFlags.NonPublic |
                        BindingFlags.Static |
                        BindingFlags.Instance).GetValue(dg);
        object row = arrRows[nRow];
        row.GetType().GetField("m_cy",
                         BindingFlags.NonPublic |
                         BindingFlags.Static |
                         BindingFlags.Instance).SetValue(row, cy);

    调用完上述函数后,要手动重绘,Gird.Invalidate()。
    利用反射你可以充分的自定义DataGrid的一些隐藏属性,并使用它的一些非公开的方法, 比如以下代码打印了所有DataGrid的隐藏属性:
    public void PrintField()
    {
        System.Reflection.FieldInfo[] fis = typeof(DataGrid).GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
        string str = "";
        foreach (var fi in fis)
        {
            str+=fi.Name + ":" + fi.FieldType.ToString()+"\r\n";
        }
        MessageBox.Show(str);
    }
  • 相关阅读:
    (创建型模式)Abstract Factory——抽象工厂模式
    (结构型模式)Composite——组合模式
    (行为模式)Command——命令模式
    (创建型模式)Singleton——单例模式
    Windows的Notepad++的插件
    Ubuntu的软件源更新常见问题及解决
    The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic Signing Key
    Ubuntu安装ImageMagick
    常见误操作之警惕
    Rails3.2.x new project启动错误:Could not find a JavaScript runtime.
  • 原文地址:https://www.cnblogs.com/sydeveloper/p/2683367.html
Copyright © 2011-2022 走看看