1

いくつかの例を見て、例に従うと、コードは次のようになります (以下を参照)。ただし、残念ながら、「'System.Windows.Forms.ImageList' には 'toArray' の定義が含まれておらず、拡張子もありません」というエラーが表示されます。タイプ 'System.Windows.Forms.ImageList' の最初の引数を受け入れるメソッド 'toArray' が見つかりました (using ディレクティブまたはアセンブリ参照がありませんか?)"

何か案は ?他の投稿に示されている部分を見逃している可能性がありますが、そうは思いません

ImageList Move_list = new ImageList();
.
.
.
//Gather the images
string        path          = "C:/Pictures/Movements/User";
string[]      filter        = { ".jpg", ".jpeg"};
DirectoryInfo directoryInfo = new DirectoryInfo(path);
FileInfo[]    fileInfo      = directoryInfo.GetFiles();
ArrayList     arrayList     = new ArrayList();

foreach (FileInfo fi in fileInfo)
  foreach (string s in filter)
    if (s == fi.Extension)
      arrayList.Add(fi.FullName);

//adding files to image list:
for (i = 0; i < arrayList.Count; i++)
{
  System.Drawing.Image img = System.Drawing.Image.FromFile(arrayList[i].ToString());
  Move_list.Images.Add(img);
}

User_moves[0] =  Move_list.toArray();
4

2 に答える 2

3

Move_list.Images はあなたのリストであり、ImageList ではありません。これは不適切な名前のクラスですが、Win32 の ImageList の概念 (連続した画像の長いビットマップのハンドル) に対応しています。ともかく:

Move_list.Images.Cast<Image>().ToArray();
于 2013-03-14T21:52:57.700 に答える
0

私が収集したものから、Move_listですImageList。orImageListを実装していません。は、これら 2 つのインターフェイスの拡張メソッドとして定義されています。IQueryableIEnumerableToArraySystem.Linq

Move_list.Images.ToArray()Images はImageCollectionを実装するので、を使用できるはずですIEnumerable

于 2013-03-14T21:48:43.753 に答える