none
LineShape陣列的宣告和使用 RRS feed

  • 問題

  • 這是MSDN裡面的介紹範例程式
    Microsoft.VisualBasic.PowerPacks.ShapeContainer canvas = 
        new Microsoft.VisualBasic.PowerPacks.ShapeContainer();
    Microsoft.VisualBasic.PowerPacks.LineShape line1 = 
        new Microsoft.VisualBasic.PowerPacks.LineShape();
    // Set the form as the parent of the ShapeContainer.
    canvas.Parent = this;
    // Set the ShapeContainer as the parent of the LineShape.
    line1.Parent = canvas;
    // Set the starting and ending coordinates for the line.
    line1.StartPoint = new System.Drawing.Point(this.Width / 2, 0);
    line1.EndPoint = new System.Drawing.Point(this.Width / 2, this.Height);
    
    想請問各位, 
    我需要宣告100個Lineshape, 但是宣告100次覺得有點冗長,, 
    且想做成陣列形式, 再來設定 Line1[0]、Line1[1]、Line1[2]...Line1[99] 等起點及終點位置。
    請問該怎麼寫會比較簡便呢?
    2015年2月25日 上午 06:14

解答

  • 您可以這樣做:

    Microsoft.VisualBasic.PowerPacks.LineShape[] line1 =
       
    new Microsoft.VisualBasic.PowerPacks.LineShape[100];       //建立陣列
    for(int i=0;i<100;i++){

        line1[i]=new  Microsoft.VisualBasic.PowerPacks.LineShape();  //建立陣列元素

    }

    2015年2月25日 上午 11:12

所有回覆

  • Microsoft.VisualBasic.PowerPacks.ShapeContainer canvas = new Microsoft.VisualBasic.PowerPacks.ShapeContainer(); Microsoft.VisualBasic.PowerPacks.LineShape[] line1 = new Microsoft.VisualBasic.PowerPacks.LineShape[100]; // Set the form as the parent of the ShapeContainer. canvas.Parent = this; // Set the ShapeContainer as the parent of the LineShape.

    for(int i = 0; i < 100; ++i){ line1[i].Parent = canvas; // Set the starting and ending coordinates for the line. line1[i].StartPoint = new System.Drawing.Point(this.Width / 2, 0); line1[i].EndPoint = new System.Drawing.Point(this.Width / 2, this.Height);

    }

    一維陣列 (C# 程式設計手冊)

    https://msdn.microsoft.com/zh-tw/library/0a7fscd0.aspx

    2015年2月25日 上午 08:58
  • Microsoft.VisualBasic.PowerPacks.ShapeContainer canvas = new Microsoft.VisualBasic.PowerPacks.ShapeContainer(); Microsoft.VisualBasic.PowerPacks.LineShape[] line1 = new Microsoft.VisualBasic.PowerPacks.LineShape[100]; // Set the form as the parent of the ShapeContainer. canvas.Parent = this; // Set the ShapeContainer as the parent of the LineShape.

    for(int i = 0; i < 100; ++i){ line1[i].Parent = canvas; // Set the starting and ending coordinates for the line. line1[i].StartPoint = new System.Drawing.Point(this.Width / 2, 0); line1[i].EndPoint = new System.Drawing.Point(this.Width / 2, this.Height);

    }

    一維陣列 (C# 程式設計手冊)

    https://msdn.microsoft.com/zh-tw/library/0a7fscd0.aspx

    你好, 我之前有嘗試過

    但是在執行到

    line1[i].Parent = canvas; "

    會出現「並未將物件參考設定為物件的執行個體」的錯誤。


    2015年2月25日 上午 10:12
  • 你的 line1[i] 是 NULL,當然會出現錯誤,我也沒看到你有在陣列中 new 物件出來....

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2015年2月25日 上午 10:23
    版主
  • 您可以這樣做:

    Microsoft.VisualBasic.PowerPacks.LineShape[] line1 =
       
    new Microsoft.VisualBasic.PowerPacks.LineShape[100];       //建立陣列
    for(int i=0;i<100;i++){

        line1[i]=new  Microsoft.VisualBasic.PowerPacks.LineShape();  //建立陣列元素

    }

    2015年2月25日 上午 11:12