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

C#?Winform文本面板帶滾動(dòng)條的實(shí)現(xiàn)過(guò)程

 更新時(shí)間:2022年12月10日 10:07:57   作者:熊思宇  
當(dāng)數(shù)據(jù)過(guò)多時(shí),往往無(wú)法在一頁(yè)中展示,所以非常需要一個(gè)滾動(dòng)條來(lái)調(diào)節(jié)頁(yè)面內(nèi)容,這篇文章主要給大家介紹了關(guān)于C#?Winform文本面板帶滾動(dòng)條的實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下

Winform 中如果需要在一個(gè)固定大小的面板中顯示一些內(nèi)容,并且面板能上下拖動(dòng),將所有的內(nèi)容完整的展示,這種需求很常見(jiàn),下面就演示如何實(shí)現(xiàn)的吧

效果:

1.新建一個(gè)winform 項(xiàng)目,在界面中拖入一個(gè)Panel 

將 panel1 的 AutoScroll 設(shè)置為 True

2.再次拖入一個(gè) Panel ,將高度拉長(zhǎng),這時(shí)就自動(dòng)出現(xiàn)了滾動(dòng)條,只是此時(shí)里面還沒(méi)有任何內(nèi)容,下面就在 panel2 中加入一點(diǎn)內(nèi)容。

3.在 panel2 中加入一個(gè) Label ,將 AutoSize 設(shè)置為 false

這時(shí),就可以調(diào)整 label 的大小了

將 label1 大小設(shè)置成 panel2 的大小一樣,并且,將位置坐標(biāo)的 x,y 都設(shè)置為0

隨便打一點(diǎn)字,運(yùn)行后,用鼠標(biāo)中輪滾動(dòng),就能看到滾動(dòng)效果了

當(dāng)前的控件擋住了后面的控件,點(diǎn)擊不到,就無(wú)法修改它的屬性,這里分享一個(gè)小技巧,我們找到屬性界面:

找到圖中的這個(gè)下拉框, 直接在下拉框進(jìn)行切換就好了

4.此時(shí) panel 的大小是固定的,如果有的內(nèi)容非常的長(zhǎng),有的比較短,這樣顯示要么會(huì)導(dǎo)致部分內(nèi)容看不到,要么就會(huì)有大量的空白部分,這個(gè)時(shí)候,我們就需要有能自動(dòng)調(diào)整展示面板高度的功能了,下面的代碼是用來(lái)顯示 Json 的,可以參考一下:

代碼:

using Newtonsoft.Json;
using System;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
 
namespace Test
{
    public partial class JsonWin : Form
    {
        public JsonWin(string json)
        {
            InitializeComponent();
 
            Json= json;
        }
 
        private string Json = string.Empty;
 
        private void JsonWin_Load(object sender, EventArgs e)
        {
            string json = PraseToJson(Json);
            string[] arr = Regex.Split(json, "\r\n", RegexOptions.IgnoreCase);
            Size size = label1.Size;
            Size newSize = new Size(size.Width, arr.Length * 23);
            label1.Size = newSize;
            panel2.Size = newSize;
            label1.Text = json;
        }
 
        public string PraseToJson(string json)
        {
            try
            {
                JsonSerializer s = new JsonSerializer();
                JsonReader reader = new JsonTextReader(new StringReader(json));
                Object jsonObject = s.Deserialize(reader);
                StringWriter sWriter = new StringWriter();
                JsonWriter writer = new JsonTextWriter(sWriter);
                writer.Formatting = Newtonsoft.Json.Formatting.Indented;
                s.Serialize(writer, jsonObject);
                return sWriter.ToString();
            }
            catch (Exception)
            {
                return json;
            }
        }
    }
}

PraseToJson 方法可以將連在一起的 json 字符串,轉(zhuǎn)換為一個(gè)標(biāo)準(zhǔn)的 Json 模板樣式,

Regex.Split 是根據(jù)換行符號(hào),來(lái)分割 json ,得到 json 的總行數(shù),以便確定 Panel 的行高,得到行高后,就能確定大概的高度了,后面通過(guò) Size 的調(diào)整,就能根據(jù)文本的內(nèi)容,來(lái)確定大概的行高了。

不過(guò)這種方式,只能在有換行符的內(nèi)容中,如果內(nèi)容像新聞一樣,幾千字都沒(méi)有一個(gè)換行符就稍微麻煩一點(diǎn),需要計(jì)算每一行能顯示多少個(gè)文字來(lái)計(jì)算有多少行,不過(guò)能顯示個(gè)大概就行,多幾行空白應(yīng)該不會(huì)有太大的影響吧。

總結(jié)

到此這篇關(guān)于C# Winform文本面板帶滾動(dòng)條實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# Winform文本面板滾動(dòng)條內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#使用NUnit進(jìn)行單元測(cè)試詳解

    C#使用NUnit進(jìn)行單元測(cè)試詳解

    NUnit是一個(gè)開(kāi)源的.Net單元測(cè)試框架,經(jīng)常被用來(lái)在.Net體系下做白盒測(cè)試,本文主要為大家詳細(xì)介紹了如何C#如何使用NUnit進(jìn)行單元測(cè)試,感興趣的可以了解下
    2023-12-12
  • C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實(shí)現(xiàn)方法

    C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于C#數(shù)據(jù)結(jié)構(gòu)之最小堆的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Visual Studio連接unity編輯器的實(shí)現(xiàn)步驟

    Visual Studio連接unity編輯器的實(shí)現(xiàn)步驟

    unity編輯器中打開(kāi)C#腳本的時(shí)候發(fā)現(xiàn)Visual Studio沒(méi)有連接unity編輯器,本文主要介紹了Visual Studio連接unity編輯器的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2023-11-11
  • C#之HttpClient的同步使用方式

    C#之HttpClient的同步使用方式

    這篇文章主要介紹了C#之HttpClient的同步使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Winform讓DataGridView左側(cè)顯示圖片

    Winform讓DataGridView左側(cè)顯示圖片

    本文主要介紹在如何讓DataGridView左側(cè)顯示圖片,這里主要講解重寫(xiě)DataGridView的OnRowPostPaint方法,需要的朋友可以參考下。
    2016-05-05
  • C#使用正則表達(dá)式

    C#使用正則表達(dá)式

    這篇文章介紹了C#使用正則表達(dá)式的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • Winform學(xué)生信息管理系統(tǒng)主頁(yè)面設(shè)計(jì)(2)

    Winform學(xué)生信息管理系統(tǒng)主頁(yè)面設(shè)計(jì)(2)

    這篇文章主要為大家詳細(xì)介紹了Winform學(xué)生信息管理系統(tǒng)主頁(yè)面設(shè)計(jì)思路,感興趣的小伙伴們可以參考一下
    2016-05-05
  • C#操作RabbitMQ的完整實(shí)例

    C#操作RabbitMQ的完整實(shí)例

    這篇文章主要為大家詳細(xì)介紹了C#操作RabbitMQ的完整實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • WPF實(shí)現(xiàn)Interaction框架的Behavior擴(kuò)展

    WPF實(shí)現(xiàn)Interaction框架的Behavior擴(kuò)展

    這篇文章介紹了WPF實(shí)現(xiàn)Interaction框架Behavior擴(kuò)展的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#遞歸實(shí)現(xiàn)顯示文件夾及所有文件并計(jì)算其大小的方法

    C#遞歸實(shí)現(xiàn)顯示文件夾及所有文件并計(jì)算其大小的方法

    這篇文章主要介紹了C#遞歸實(shí)現(xiàn)顯示文件夾及所有文件并計(jì)算其大小的方法,是遍歷算法中比較典型的一種應(yīng)用,有不錯(cuò)的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08

最新評(píng)論

苏州市| 德令哈市| 武川县| 古田县| 安岳县| 阆中市| 冀州市| 麻城市| 海城市| 勃利县| 龙州县| 武安市| 资阳市| 志丹县| 岢岚县| 永济市| 宁远县| 平山县| 庐江县| 稻城县| 桂阳县| 阿拉善右旗| 万山特区| 灵山县| 崇明县| 兴业县| 泰州市| 定南县| 枣阳市| 来安县| 文昌市| 修文县| 馆陶县| 专栏| 兴仁县| 太湖县| 巴里| 自治县| 体育| 临高县| 开鲁县|