• 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);
    }
  • 相关阅读:
    Eclipse / android studio 添加第三方jar包 步骤
    Android checkbox 自定义点击效果
    Android 程序打包和安装过程
    Android 基础
    (转)Genymotion安装virtual device的“unable to create virtual device, Server returned Http status code 0”的解决方法
    (转)eclipse 导入Android 项目 步骤
    微信开放平台注册 步骤
    Android Studio 初级安装
    数组
    作用域问题代码
  • 原文地址:https://www.cnblogs.com/sydeveloper/p/2683367.html
Copyright © 2020-2023  润新知