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

c# winform 解決PictureBox 無(wú)法打印全部圖片的問(wèn)題

 更新時(shí)間:2020年12月15日 08:36:17   作者:沐汐Vicky  
這篇文章主要介紹了c# winform 解決PictureBox 無(wú)法打印全部圖片的問(wèn)題,幫助大家更好進(jìn)行c# winform開(kāi)發(fā),感興趣的朋友可以了解下

作者:沐汐 Vicky
出處:http://www.cnblogs.com/EasyInvoice

一、   問(wèn)題描述

在頁(yè)面使用PictureBox 加載資料圖片后,點(diǎn)擊“打印”,只能打印圖片首頁(yè),較大圖片則無(wú)法全部打印。

二、   原因分析

PictureBox中打印圖片時(shí)沒(méi)有設(shè)置繼續(xù)打印相關(guān)屬性,因此每次只能打印第1頁(yè)。

三、解決方法

PictureBox控件增加打印全部頁(yè)面屬性,如果為True,表示打印全部頁(yè)面;如果為False,保留原有邏輯不變。

在打印全部頁(yè)面時(shí),將控件的圖片按頁(yè)面大小切割,打印頁(yè)面索引小于頁(yè)面總數(shù)時(shí),設(shè)置打印屬性PrintPageEventArgs. HasMorePages = true繼續(xù)打印,打印完成后將該屬性設(shè)置為False結(jié)束打印。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Printing;
using System.Text;
using System.Windows.Forms;
 
namespace MyClass
{
 
    //public enum OperationState { Default, ZoomIn, ZoomOut };
 
    public partial class UCPictureBox : PictureBox
    {
        //private OperationState operationState;//處理狀態(tài)
        private HScrollBar hScrollBar;//水平滾動(dòng)條
        private VScrollBar vScrollBar;//垂直滾動(dòng)條
        private PrintDocument printDocument;//打印對(duì)象
        private Rectangle currRect;//現(xiàn)在矩形對(duì)象
        private Bitmap currBmp;//現(xiàn)在圖形對(duì)象
        //private int hScrollBarMidVal;//水平滾動(dòng)條中間值
        //private int vScrollBarMidVal;//垂直滾動(dòng)條中間值
        private RectangleF srcRect;
        private RectangleF destRect;
        private bool isMoveScrollBar;//是否移動(dòng)滾動(dòng)條       
        int currentPageIndex = 0;//當(dāng)前頁(yè)面
        int pageCount = 0;//打印頁(yè)數(shù)
         
        /// <summary>
        /// 構(gòu)造函數(shù)
        /// </summary>
        public UCPictureBox()
        {
            InitializeComponent();
            SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
 
            //hScrollBarMidVal = 0;
            //vScrollBarMidVal = 0;           
            //operationState = OperationState.Default;
            isMoveScrollBar = false;
            srcRect = new RectangleF();
            destRect = new RectangleF();
            printDocument = new PrintDocument();
            printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
 
            //構(gòu)造水平滾動(dòng)條
            hScrollBar = new HScrollBar();
            hScrollBar.Visible = false;
            hScrollBar.Dock = DockStyle.Bottom;
            hScrollBar.Scroll += new ScrollEventHandler(scrollBar_Scroll);
            this.Controls.Add(hScrollBar);
 
            //構(gòu)造垂直滾動(dòng)條
            vScrollBar = new VScrollBar();
            vScrollBar.Visible = false;
            vScrollBar.Dock = DockStyle.Right;
            vScrollBar.Scroll +=new ScrollEventHandler(scrollBar_Scroll);
            this.Controls.Add(vScrollBar);
        }
 
        #region 公共屬性
 
        [Category("外觀"), Description("獲取或設(shè)置圖片")]
        public new Image Image
        {
            get { return base.Image; }
            set
            {
                if (value != null)
                {
                    base.Image = value;
                    currRect.Width = base.Image.Width;
                    currRect.Height = base.Image.Height;
                    hScrollBar.Value = 0;
                    vScrollBar.Value = 0;
                    displayScrollBars();
                    setScrollBarsValues();
                    Invalidate();
                }
            }
        }
 
        //縮放比例
        private int scaleSize = 1;
        [Category("其它"), Description("獲取或設(shè)置圖片縮放比例")]
        public Int32 ScaleSize
        {
            get { return scaleSize; }
            set
            {
                if (value > 1 && value < 51)
                {
                    scaleSize = value;
                }
            }
        }
 
        //縮放倍數(shù)
        private int scaleScope = 5;
        [Category("其它"), Description("獲取或設(shè)置圖片最大縮放倍數(shù)")]
        public int ScaleScope
        {
            get { return scaleScope; }
            set
            {
                if (value > 1 && value < 11)
                {
                    scaleScope = value;
                }
            }
        }
 
        //圖片邊框顏色
        //private Color borderColor = Color.DarkGray;
        //[Category("其它"), Description("獲取或設(shè)置圖片邊框顏色")]
        //public Color BorderColor
        //{
        //    get { return borderColor; }
        //    set { borderColor = value; }
        //}
 
        //圖片邊框?qū)挾?
        private int borderWidth = 5;
        [Category("其它"), Description("獲取或設(shè)置圖片邊框?qū)挾?)]
        public Int32 BorderWidth
        {
            get { return borderWidth; }
            set { borderWidth = value; }
        }
 
        //打印全部頁(yè)面
        [Category("其它"),Description("true-打印全部頁(yè)面,false-打印首頁(yè)")]
        public bool PrintAllPages { get; set; }
 
        #endregion
 
        #region 內(nèi)部公共方法
 
        /// <summary>
        /// 從新繪制
        /// </summary>
        protected override void OnPaint(PaintEventArgs pe)
        {
            // TODO: 在此處添加自定義繪制代碼
            // 調(diào)用基類 OnPaint
            base.OnPaint(pe);
 
            if (this.Image != null)
            {
                if (currBmp != null) { currBmp.Dispose(); }
                currBmp = new Bitmap(currRect.Width + 2 * borderWidth, currRect.Height + 2 * borderWidth);
                //繪制新圖片
                using (Graphics g = Graphics.FromImage(currBmp))
                {
                    using (Pen pen = new Pen(BackColor, borderWidth))
                    {
                        g.DrawRectangle(pen, borderWidth * 0.5f, borderWidth * 0.5f,
                                        currRect.Width + borderWidth,
                                        currRect.Height + borderWidth);
                    }
                    g.DrawImage(this.Image, borderWidth, borderWidth, currRect.Width, currRect.Height);
                }
 
                //圖片繪制到控件上
                pe.Graphics.Clear(BackColor);
                if (hScrollBar.Visible || vScrollBar.Visible)
                {//滾動(dòng)條可見(jiàn)
                    drawDisplayedScrollBars(pe.Graphics);
                }
                else
                {//滾動(dòng)條不可見(jiàn)
                    float x = 0, y = 0;
                    isMoveScrollBar = false;
 
                    //是否繪制到中心點(diǎn)坐標(biāo)
                    if (this.SizeMode == PictureBoxSizeMode.CenterImage)
                    {
                        x = Math.Abs(ClientSize.Width - currBmp.Width) * 0.5f;
                        y = Math.Abs(ClientSize.Height - currBmp.Height) * 0.5f;
                    }
                    pe.Graphics.DrawImage(currBmp, x, y, currBmp.Width, currBmp.Height);
                }
            }
        }
 
        /// <summary>
        /// 重寫(xiě)控件大小發(fā)生改變事件
        /// </summary>
        protected override void OnClientSizeChanged(EventArgs e)
        {
            base.OnClientSizeChanged(e);
            displayScrollBars();
            setScrollBarsValues();
            Invalidate();
        }
 
        #endregion
 
        #region 圖片打印與預(yù)覽
 
        /// <summary>
        /// 打印圖片
        /// </summary>
        public void PrintPictrue()
        {
            PrintDialog printDialog = new PrintDialog();
            printDialog.Document = printDocument;
            //added by lky 2017-11-16 修復(fù)Windows 7 x64位環(huán)境無(wú)法彈出打印對(duì)話框的問(wèn)題
            printDialog.UseEXDialog = true;
            if (printDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    printDocument.Print();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
        }
 
        /// <summary>
        /// 打印預(yù)覽
        /// </summary>
        public void PrintPreview()
        {
            PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
            printPreviewDialog.Document = printDocument;
            try
            {
                printPreviewDialog.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "打印出錯(cuò)", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
        /// <summary>
        /// 打印圖片事件
        /// </summary>
        private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            if (currBmp == null)
                return;
            try
            {
                if (PrintAllPages)//added by lky 2018-1-15 打印全部頁(yè)面
                {
                    int pageWith =(int) e.PageSettings.PrintableArea.Width;
                    int pageHeight = (int)e.PageSettings.PrintableArea.Height;
                    int horizontalTimes = (int)Math.Ceiling((decimal)currBmp.Width / pageWith);//水平方向切割頁(yè)數(shù)
                    int verticalTimes = (int)Math.Ceiling((decimal)currBmp.Height / pageHeight);//垂直方向切割頁(yè)數(shù)
                    if (pageCount == 0)
                    {
                        pageCount = horizontalTimes * verticalTimes;//總頁(yè)數(shù)
                        currentPageIndex = 0;
                    }
                    int horizontalCurrentPosition = (currentPageIndex % horizontalTimes);//當(dāng)前打印的水平偏移頁(yè)數(shù)
                    int verticalCurrentPosition = (int)Math.Floor((decimal)currentPageIndex / horizontalTimes);//當(dāng)前打印的垂直偏移頁(yè)數(shù)
                    int x = horizontalCurrentPosition * pageWith;//水平方向打印偏移位置
                    int y = verticalCurrentPosition * pageHeight;//垂直方向打印偏移位置
                    int leftX = (currBmp.Width - x) > 0 ? (currBmp.Width - x) : 0;//水平方向未打印尺寸
                    int leftY = (currBmp.Height - y) > 0 ? (currBmp.Height - y) : 0;//垂直方向未打印尺寸
 
                    Bitmap printBmp = (Bitmap)currBmp.Clone(new Rectangle(x, y, (leftX > pageWith ? pageWith : leftX),
                        (leftY > pageHeight ? pageHeight : leftY)), currBmp.PixelFormat); //待打印圖片緩存
                    e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
                    e.Graphics.PixelOffsetMode = PixelOffsetMode.HighSpeed;
 
                    e.Graphics.DrawImage(printBmp, 0, 0, printBmp.Width, printBmp.Height);
                    printBmp.Dispose();
                    currentPageIndex++;
                    e.HasMorePages = currentPageIndex < pageCount;//是否繼續(xù)打印
                    if (!e.HasMorePages) pageCount = 0;//打印頁(yè)數(shù)置為0
                }
                else //僅打印首頁(yè)
                {
                    Bitmap printBmp = (Bitmap)currBmp.Clone();
                    e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
                    e.Graphics.PixelOffsetMode = PixelOffsetMode.HighSpeed;
                    e.Graphics.DrawImage(printBmp, 0, 0, printBmp.Width, printBmp.Height);
                    printBmp.Dispose();
                }
            }
            catch (Exception ex)
            {
                //寫(xiě)日志文件
                LogWriter.Write(LOG_CATEGORY.WIN_UI, LOG_LEVEL.ERROR, "UCPicturBox.PrintPage" + ex.ToString());
            }
        }
 
        #endregion
 
        #region 圖片放大、縮小、原始大小、全屏顯示、旋轉(zhuǎn)功能
 
        /// <summary>
        /// 放大圖片
        /// </summary>
        public void ZoomInPicture()
        {
            if (this.Image != null)
            {
                //operationState = OperationState.ZoomIn;
                double scale = 1 + (scaleSize * 0.01);
                currRect.Width = Convert.ToInt32(currRect.Width * scale);
                currRect.Height = currRect.Width * this.Image.Height / this.Image.Width;
                if (currRect.Width < (this.Image.Width * scaleScope))
                {                   
                    displayScrollBars();
                    setScrollBarsValues();
                    Invalidate();
                }
            }
        }
 
        /// <summary>
        /// 縮小圖片
        /// </summary>
        public void ZoomOutPicture()
        {
            if (this.Image != null)
            {
                //operationState = OperationState.ZoomOut;
                double scale = 1 - (scaleSize * 0.01);
                currRect.Width = Convert.ToInt32(currRect.Width * scale);
                currRect.Height = currRect.Width * this.Image.Height / this.Image.Width;
                displayScrollBars();
                setScrollBarsValues();
                Invalidate();
            }
        }
 
        /// <summary>
        /// 原始大小
        /// </summary>
        public void ZoomOriginalPicture()
        {
            if (this.Image != null)
            {
                //operationState = OperationState.Default;
                isMoveScrollBar = false;
                currRect.Width = this.Image.Width;
                currRect.Height = this.Image.Height;
                displayScrollBars();
                setScrollBarsValues();
                Invalidate();
            }
        }
 
        /// <summary>
        /// 全屏顯示
        /// </summary>
        public void ZoomShowAllPicture()
        {
            if (this.Image != null)
            {
                if (this.Image.Width > this.Image.Height)
                {
                    currRect.Width = ClientSize.Width - 2 * borderWidth;
                    currRect.Height = currRect.Width * this.Image.Height / this.Image.Width;
                    if ((currRect.Height + 2 * borderWidth) > ClientSize.Height)
                    {
                        currRect.Height = ClientSize.Height - 2 * borderWidth;
                        currRect.Width = currRect.Height * this.Image.Width / this.Image.Height;
                    }
                    //if ((currRect.Height + 2 * borderWidth) > ClientSize.Height)
                    //{
                    //    currRect.Width = ClientSize.Width - 2 * borderWidth - vScrollBar.Width;
                    //    currRect.Height = currRect.Width * this.Image.Height / this.Image.Width;
                    //}
                }
                else
                {
                    currRect.Height = ClientSize.Height - 2 * borderWidth;
                    currRect.Width = currRect.Height * this.Image.Width / this.Image.Height;
                    if ((currRect.Width + 2 * borderWidth) > ClientSize.Width)
                    {
                        currRect.Width = ClientSize.Width - 2 * borderWidth;
                        currRect.Height = currRect.Width * this.Image.Width / this.Image.Height;
                    }
                    //if ((currRect.Width + 2 * borderWidth) > ClientSize.Width)
                    //{
                    //    hScrollBar.Value = 0;
                    //    currRect.Height = ClientSize.Height - 2 * borderWidth - hScrollBar.Height;
                    //    currRect.Width = currRect.Height * this.Image.Width / this.Image.Height;
                    //}
                }
                isMoveScrollBar = false;
                displayScrollBars();
                setScrollBarsValues();
                Invalidate();
            }
        }
 
        /// <summary>
        /// 旋轉(zhuǎn)圖片
        /// </summary>
        public void RotatePicture()
        {
            if (this.Image != null)
            {
                isMoveScrollBar = false;
                this.Image.RotateFlip(RotateFlipType.Rotate90FlipNone);
                int tempWidth = currRect.Width;
                currRect.Width = currRect.Height;
                currRect.Height = tempWidth;
                displayScrollBars();
                setScrollBarsValues();
                Invalidate();
            }
        }
 
        /// <summary>
        /// 顯示水平滾動(dòng)條與垂直滾動(dòng)條
        /// </summary>
        private void displayScrollBars()
        {
            //是否顯示水平滾動(dòng)條
            if ((currRect.Width + 2 * borderWidth) > ClientSize.Width)
            { hScrollBar.Visible = true; }
            else
            { hScrollBar.Visible = false; }
 
            //是否顯示垂直滾動(dòng)條
            if ((currRect.Height + 2 * borderWidth) > ClientSize.Height)
            { vScrollBar.Visible = true; }
            else
            { vScrollBar.Visible = false; }
        }
 
        /// <summary>
        /// 設(shè)置水平滾動(dòng)條與垂直滾動(dòng)條值
        /// </summary>
        private void setScrollBarsValues()
        {
            //設(shè)置水平滾動(dòng)條值
            if (hScrollBar.Visible)
            {
                hScrollBar.Minimum = 0;
                hScrollBar.Maximum = currRect.Width - ClientSize.Width + 2 * borderWidth;
                hScrollBar.LargeChange = currRect.Width / 10;
                if (vScrollBar.Visible)
                {
                    hScrollBar.Maximum += vScrollBar.Width;
                }
                if (hScrollBar.LargeChange > hScrollBar.Maximum)
                {
                    hScrollBar.LargeChange = hScrollBar.Maximum - 1;
                }
                hScrollBar.SmallChange = hScrollBar.LargeChange / 5;
                hScrollBar.Maximum += hScrollBar.LargeChange;
 
                //繪制坐標(biāo)為中心點(diǎn)
                if (this.SizeMode == PictureBoxSizeMode.CenterImage)
                {
                    if (hScrollBar.Value == 0 || isMoveScrollBar == false)
                    {
                        hScrollBar.Value = (hScrollBar.Maximum - hScrollBar.LargeChange) / 2;
                    }
                }
            }
            else
            { hScrollBar.Value = 0; }
 
            //設(shè)置垂直滾動(dòng)條值
            if (vScrollBar.Visible)
            {
                vScrollBar.Minimum = 0;
                vScrollBar.Maximum = currRect.Height - ClientSize.Height + 2 * borderWidth;
                vScrollBar.LargeChange = currRect.Height / 10;
                if (hScrollBar.Visible)
                {
                    vScrollBar.Maximum += hScrollBar.Height;
                }
                if (vScrollBar.LargeChange > vScrollBar.Maximum)
                {
                    vScrollBar.LargeChange = vScrollBar.Maximum - 1;
                }
                vScrollBar.SmallChange = vScrollBar.LargeChange / 5;
                vScrollBar.Maximum += vScrollBar.LargeChange;
 
                //繪制坐標(biāo)為中心點(diǎn)
                if (this.SizeMode == PictureBoxSizeMode.CenterImage)
                {
                    if (vScrollBar.Value == 0 || isMoveScrollBar ==false)
                    {                       
                        vScrollBar.Value = (vScrollBar.Maximum - vScrollBar.LargeChange) / 2;
                    }
                }
            }
            else
            { vScrollBar.Value = 0; }
        }
 
        /// <summary>
        /// 移動(dòng)水平滾動(dòng)條事件
        /// </summary>
        private void scrollBar_Scroll(object sender, ScrollEventArgs e)
        {
            isMoveScrollBar = true;
            using (Graphics graphics = this.CreateGraphics())
            {
                drawDisplayedScrollBars(graphics);
            }
            this.Update();
        }
 
        /// <summary>
        /// 從新繪制顯示的滾動(dòng)條
        /// </summary>
        private void drawDisplayedScrollBars(Graphics graphics)
        {
            float x = 0, y = 0;
 
            if (this.SizeMode == PictureBoxSizeMode.CenterImage)
            {
                x = Math.Abs(ClientSize.Width - currBmp.Width - vScrollBar.Width) * 0.5f;
                y = Math.Abs(ClientSize.Height - currBmp.Height - hScrollBar.Height) * 0.5f;
            }
            if (hScrollBar.Visible == false)
            {//水平滾動(dòng)條不可見(jiàn)
                destRect.X = x;
                destRect.Y = 0;
                srcRect.X = 0;
                srcRect.Y = vScrollBar.Value;
            }
            else if (vScrollBar.Visible == false)
            {//垂直滾動(dòng)條不可見(jiàn)
                destRect.X = 0;
                destRect.Y = y;
                srcRect.Y = 0;
                srcRect.X = hScrollBar.Value;
            }
            else
            {//兩個(gè)滾動(dòng)條都可見(jiàn)
                destRect.X = 0;
                destRect.Y = 0;
                srcRect.X = hScrollBar.Value;
                srcRect.Y = vScrollBar.Value;
            }
            destRect.Width = currBmp.Width;
            destRect.Height = currBmp.Height;
            srcRect.Width = currBmp.Width;
            srcRect.Height = currBmp.Height;
            graphics.DrawImage(currBmp, destRect, srcRect, GraphicsUnit.Pixel);
        }
 
        #endregion
    }
}

以上就是c# winform 解決PictureBox 無(wú)法打印全部圖片的問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于解決picturebox無(wú)法打印圖片的問(wèn)題的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C# 定時(shí)器保活機(jī)制引起的內(nèi)存泄露問(wèn)題解決

    C# 定時(shí)器?;顧C(jī)制引起的內(nèi)存泄露問(wèn)題解決

    這篇文章主要介紹了C# 定時(shí)器保活機(jī)制引起的內(nèi)存泄露問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Unity實(shí)現(xiàn)彈球打磚塊游戲

    Unity實(shí)現(xiàn)彈球打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)彈球打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C#獲取進(jìn)程或線程相關(guān)信息的方法

    C#獲取進(jìn)程或線程相關(guān)信息的方法

    這篇文章主要介紹了C#獲取進(jìn)程或線程相關(guān)信息的方法,涉及C#操作進(jìn)程及線程的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#語(yǔ)言中條件與&&與條件或||的區(qū)別

    C#語(yǔ)言中條件與&&與條件或||的區(qū)別

    這篇文章主要介紹了&&:邏輯與,前后條件同時(shí)滿足表達(dá)式為真 ||:邏輯或,前后條件只要有一個(gè)滿足表達(dá)式為真,下面結(jié)合案例給大家介紹,需要的朋友可以參考下
    2015-07-07
  • WPF實(shí)現(xiàn)html中的table控件的示例代碼

    WPF實(shí)現(xiàn)html中的table控件的示例代碼

    相信很多做WPF開(kāi)發(fā)的小伙伴都遇到過(guò)表格類的需求,雖然現(xiàn)有的Grid控件也能實(shí)現(xiàn),但是使用起來(lái)的體驗(yàn)感并不好,所以本文我們就來(lái)用WPF自己實(shí)現(xiàn)一個(gè)html中的table控件吧
    2024-03-03
  • C#操作讀取、寫(xiě)入XML文檔的實(shí)用方法

    C#操作讀取、寫(xiě)入XML文檔的實(shí)用方法

    這篇文章主要介紹了C#操作讀取、寫(xiě)入XML文檔的實(shí)用方法,即即用.NET本身提供的Deserialize和Serialize進(jìn)行反序列化和序列化XML文檔,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C#特性之匿名方法和Lambda表達(dá)式

    C#特性之匿名方法和Lambda表達(dá)式

    這篇文章主要介紹了C#特性之匿名方法和Lambda表達(dá)式,需要的朋友可以參考下
    2014-12-12
  • WPF利用RPC調(diào)用其他進(jìn)程的方法詳解

    WPF利用RPC調(diào)用其他進(jìn)程的方法詳解

    這篇文章主要給大家介紹了關(guān)于WPF利用RPC調(diào)用其他進(jìn)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • C#二分查找算法

    C#二分查找算法

    這篇文章介紹了C#中的二分查找算法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#實(shí)現(xiàn)可緩存網(wǎng)頁(yè)到本地的反向代理工具實(shí)例

    C#實(shí)現(xiàn)可緩存網(wǎng)頁(yè)到本地的反向代理工具實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)可緩存網(wǎng)頁(yè)到本地的反向代理工具,實(shí)例分析了C#實(shí)現(xiàn)反向代理的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

正蓝旗| 金乡县| 阿拉善右旗| 横峰县| 吐鲁番市| 大厂| 黑水县| 临朐县| 保定市| 察隅县| 额尔古纳市| 长子县| 昌江| 孟村| 汤原县| 贵港市| 鄂温| 宁远县| 新宾| 额尔古纳市| 富民县| 延边| 新源县| 伊金霍洛旗| 金湖县| 林周县| 康乐县| 怀仁县| 嘉兴市| 东乌| 汉中市| 剑阁县| 岳西县| 庆安县| 汾阳市| 祥云县| 乌恰县| 隆安县| 无极县| 寻甸| 黑山县|