最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

動態(tài)改變gridview列寬度函數(shù)分享

 更新時間:2014年01月13日 14:07:06   投稿:zxhpj  
通常用GridView綁定datatable,由于需要動態(tài)綁定到不同的datatable所以需要動態(tài)調(diào)整GridView的寬度。寫了這個函數(shù)實現(xiàn)該功能

我通常用GridView綁定datatable,由于需要動態(tài)綁定到不同的datatable所以需要動態(tài)調(diào)整GridView的寬度。所以寫了這個函數(shù)實現(xiàn)該功能。GridView的寬度需要根據(jù)各個列中最大寬度來累加獲得。在求各個列的最大字符寬度的時候需要對中文和英文加以區(qū)分,因為字符串“序號”和“id”的length屬性都為2,但是顯示的時候一個漢字占據(jù)的寬度卻相當(dāng)于2個英文字符。要想達(dá)到準(zhǔn)確的顯示效果,我對含有漢字的字符串根據(jù)漢字的數(shù)目確定該字符串等價英文字符的長度,例如字符串“序號id”的length屬性為4,我自己通過函數(shù)獲得的長度為6.確定了每列的最大字符數(shù)后,累加即可獲得GridView的寬度字符,然后乘于一個字符在屏幕上的顯示寬度oneLetterLength常量后就是GridView寬度。

復(fù)制代碼 代碼如下:

public  void SetGridViewWidth(GridView gridview1)
        {
            int rowcount = gridview1.Rows.Count;   //行數(shù)
            int colcount = gridview1.Columns.Count;  //列數(shù)
            int i=0,j=0;
            int[] cellwidth = new int[colcount];   //數(shù)組用來存儲各個列的最大字符數(shù)
            int gridviewwidth = 0;  //GridView寬度
            Unit width = 0; 
            string temp = null;
            int tempLength = 0;

            for (i = 0; i < rowcount; i++)     //循環(huán)數(shù)據(jù)項,獲得各個列的最大字符寬度
            {
                for (j = 0; j < colcount; j++)
                {
                    temp = gridview1.Rows[i].Cells[j].Text;
                    tempLength = LengthOfLetter(temp);      //LengthOfLetter()返回含中文的字符串字符寬度,1個漢字2個字符寬
                    if (cellwidth[j] < tempLength)
                    {
                        cellwidth[j] = tempLength;        //存儲較大寬度值
                    }

                }
            }

          

            for (j = 0; j < colcount; j++)
            {
                if (gridview1.HeaderRow.Visible == true)      //如果GridView表頭可見,將表頭列寬參與比較                {
                    temp = gridview1.HeaderRow.Cells[j].Text;
                    tempLength = LengthOfLetter(temp);
                    if (cellwidth[j] < tempLength)
                    {
                        cellwidth[j] = tempLength;
                    }
                }

                if (gridview1.FooterRow.Visible == true)    //如果GridView表尾可見,將表尾列寬參與比較                {
                    temp = gridview1.FooterRow.Cells[j].Text;
                    tempLength = LengthOfLetter(temp);
                    if (cellwidth[j] < tempLength)
                    {
                        cellwidth[j] = tempLength;
                    }
                }

            }


            for (j = 0; j < colcount; j++)
            {
                if (gridview1.Columns[j].Visible == true)     //將顯示的列的各列最大字符寬度相加                {
                    gridviewwidth += cellwidth[j];
                }
            }

            width = gridviewwidth * oneLetterLength;  //GridView最大字符數(shù)乘于一個字符顯示寬度得到GridView顯示寬度
            if (gridview1.Width.Value < width.Value)    //如果在界面上已經(jīng)設(shè)置了GridView的寬度,將動態(tài)求的寬度和頁面上的
               {                                                              //初始化寬度比較,如果初始化寬度較小則將寬度設(shè)置為新調(diào)整的寬度。
                     gridview1.Width = width;
                }

        }

       //含有中文的字符串等效英文字符串顯示長度

        public  int LengthOfLetter(string temp) 
        {
            int length = temp.Length;
            int newlength = temp.Length;

            for (int i = 0; i < length; i++)         //遍歷字符串每個字符
            {
                if (IsChineseLetter(temp, i))     //IsChineseLetter()判斷是否為中文字符,是則寬度加1
                {
                    newlength++;
                }
            }
            return newlength;

        }


   //判斷是否為中文字符
     public  bool  IsChineseLetter(string input,int index)
        {
            int code = 0;
            int chfrom = Convert.ToInt32("4e00", 16);    //范圍(0x4e00~0x9fff)轉(zhuǎn)換成int(chfrom~chend)
            int chend = Convert.ToInt32("9fff", 16);
            if (input != "")
            {
                code = Char.ConvertToUtf32(input, index);    //獲得字符串input中指定索引index處字符unicode編碼
               
               if (code >= chfrom && code <= chend)    
               {
                    return true;     //當(dāng)code在中文范圍內(nèi)返回true

                }
               else
               {
                     return false ;    //當(dāng)code不在中文范圍內(nèi)返回false
               }
            }

            return false;
        }

相關(guān)文章

  • C#組件FormDragger窗體拖拽器詳解

    C#組件FormDragger窗體拖拽器詳解

    這篇文章主要為大家詳細(xì)介紹了C#組件FormDragger窗體拖拽器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#實現(xiàn)Word文檔轉(zhuǎn)Markdown格式的示例代碼

    C#實現(xiàn)Word文檔轉(zhuǎn)Markdown格式的示例代碼

    文檔格式的多樣性豐富了我們的信息交流手段,其中Word文檔因其強(qiáng)大的功能性而廣受歡迎,Markdown因其簡潔、易于閱讀和編輯的特性而展現(xiàn)出獨特的優(yōu)勢,本文將介紹如何在.NET平臺使用C#代碼實現(xiàn)Word文檔到Markdown格式的轉(zhuǎn)換,需要的朋友可以參考下
    2024-04-04
  • c#結(jié)構(gòu)和類的相關(guān)介紹

    c#結(jié)構(gòu)和類的相關(guān)介紹

    結(jié)構(gòu)和類的共同點都是屬于抽象數(shù)據(jù)類型,包含數(shù)據(jù)和數(shù)據(jù)的操作。不同點在于結(jié)構(gòu)偏重于數(shù)據(jù)語意,而類偏重於行為語意。
    2012-12-12
  • 幾分鐘搞懂c#之FileStream對象讀寫大文件(推薦)

    幾分鐘搞懂c#之FileStream對象讀寫大文件(推薦)

    這篇文章主要介紹了c#之FileStream對象讀寫大文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C#實現(xiàn)一個相當(dāng)全面的數(shù)據(jù)轉(zhuǎn)換工具類

    C#實現(xiàn)一個相當(dāng)全面的數(shù)據(jù)轉(zhuǎn)換工具類

    這篇文章主要為大家介紹了如何使用C#編寫一個通用工具類DataConvert來進(jìn)行數(shù)據(jù)轉(zhuǎn)換,包括30+個數(shù)據(jù)類型轉(zhuǎn)換,需要的可以了解一下
    2025-03-03
  • C#使用讀寫鎖解決多線程并發(fā)問題

    C#使用讀寫鎖解決多線程并發(fā)問題

    本文詳細(xì)講解了C#使用讀寫鎖解決多線程并發(fā)問題,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#基本語法簡介

    C#基本語法簡介

    本文詳細(xì)講解了C#的基本語法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#實現(xiàn)常見加密算法的示例代碼

    C#實現(xiàn)常見加密算法的示例代碼

    這篇文章主要為大家詳細(xì)介紹一下C#中一些常見加密算法(Base64編碼、凱撒密碼、Vigenere密碼、DES、AES)以及它們的實現(xiàn)代碼,感興趣的可以了解一下
    2022-07-07
  • C#如何修改項目名圖文詳解

    C#如何修改項目名圖文詳解

    最近開發(fā)工作接近尾聲,客戶來要求更換項目的名稱,差不多要變更整個解決方案中項目名稱,引用等等,這個工作量還是很大的,這篇文章主要給大家介紹了關(guān)于C#如何修改項目名的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • C# 語言入門基礎(chǔ)介紹

    C# 語言入門基礎(chǔ)介紹

    這篇文章主要介紹了C# 語言入門基礎(chǔ),c#是一種新式編程語言,不僅面向?qū)ο?,還類型安全,本教程概述了 C# 8 及更高版本中該語言的主要組件。 下面一起進(jìn)入文章了解更多的詳細(xì)內(nèi)容吧
    2021-12-12

最新評論

拉萨市| 西城区| 宣威市| 观塘区| 永嘉县| 甘洛县| 阿拉善左旗| 游戏| 德清县| 闽侯县| 海晏县| 云林县| 梓潼县| 郎溪县| 长泰县| 准格尔旗| 侯马市| 东乌珠穆沁旗| 沁源县| 楚雄市| 衡阳市| 新晃| 凤台县| 册亨县| 合作市| 梅河口市| 霞浦县| 哈尔滨市| 农安县| 阳信县| 赤城县| 胶州市| 新安县| 临西县| 阳泉市| 绥棱县| 棋牌| 罗田县| 五大连池市| 志丹县| 壤塘县|