none
c# User Control 給予參數值畫圖在對應位置? RRS feed

  • 問題

  • 想請問user control的問題: user control 如何傳入參數值? 

    我的需求是利用User Control 來完成畫圖的功能,

    而我不確定user control 是否能根據我傳入的參數值,來決定畫圖的位置,

    ex: 假設我要畫一些線和一個圓交錯,然後線交錯的地方塗滿顏色,

    而這些塗滿顏色的位置是動態的(會根據我的資料而改變)

    在usercontrol中 

                g.DrawEllipse(DrawPen, 20, 10, 100, 100);  // 畫圓

                g.DrawLine(DrawPen, 10, 30, 130, 30);       //  畫線

                g.DrawLine(DrawPen, 10, 50, 130, 50);

                g.DrawLine(DrawPen, 10, 70, 130, 70);

                g.DrawLine(DrawPen, 10, 90, 130, 90);

                g.DrawLine(DrawPen, 40, 0, 40, 120);

                g.DrawLine(DrawPen, 60, 0, 60, 120);

                g.DrawLine(DrawPen, 80, 0, 80, 120);

                g.DrawLine(DrawPen, 100, 0, 100, 120);

          上面的圓以及線都是固定位置,

          而這個矩形 g.FillRectangle(myBrush,  * 20, 90, 20, 20);    // 畫矩形

           X 參數 是我輸入給他才畫的 ,請問該如何做呢? 



    • 已編輯 CrazyC.C.F 2014年3月11日 上午 11:32
    2014年3月11日 上午 11:31

解答

所有回覆

  • 建一個自訂屬性或方法

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年3月11日 下午 12:39
    版主
  • 將x定義成UserControl的屬性, 您可以透過設定x屬性控制畫的矩形的位置
    • 已標示為解答 CrazyC.C.F 2014年3月19日 上午 03:08
    2014年3月11日 下午 12:58
  • 將x定義成UserControl的屬性, 您可以透過設定x屬性控制畫的矩形的位置

           我利用類似於宣告function的方式就可以了,非常感謝。

           另外請教一下,我利用Usercontrol 宣告            

          畫出第一張圖是正確的沒問題,利用for迴圈帶入不同參數去畫,

          卻還是顯示第一張圖,請問這要如何修正呢?

          我試過另外new 一個bmp, 把第二筆資料放入也一樣, 還是只會顯示第一張

           求解,非常感謝。

    for(int i=0;i<=xxx;i++)

    {

     DrawMap(i);

    }

     public void DrawMap(int a)

    {

    Bitmap  bitmap = new Bitmap(300,300);

    Graphics g = Graphics.FromImage(bitmap);

    g.FillRectangle(myBrush, a * 20, 10, 20, 20);

    bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);    <<<  是否這裡有問題? 

    abnMap.Dispose();          

    g.Dispose();

    }




    • 已編輯 CrazyC.C.F 2014年3月12日 上午 08:19
    2014年3月12日 上午 06:50