C# アイコンの読み込みでエラーが起きる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 658
登録日時: 15年前
住所: 宮崎県
連絡を取る:

C# アイコンの読み込みでエラーが起きる

#1

投稿記事 by dic » 8年前

[1] 質問文
 [1.1] 自分が今行いたい事は何か
  C#でアイコンを読み込み、表示させたい

 [1.2] どのように取り組んだか(プログラムコードがある場合記載)

コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace リスト6_14_アイコンの描画
{
    public partial class Form1 : Form
    {
        private Icon icon;

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            if (icon == null)
                icon = new Icon("test.ico");
            e.Graphics.DrawIcon(icon, 0, 0);
            e.Graphics.DrawIcon(icon, new Rectangle(icon.Width, 0, 200, 200));
        }
        public Form1()
        {
            InitializeComponent();
        }
    }
}
 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
  ソースコードの20行目で停止
  ArgumentExceptionはハンドルされませんでした。
  引数 picture は Icon として使用できるピクチャでなければなりません。
  というダイアログボックスが出る

 [1.4] 今何がわからないのか、知りたいのか
  アイコンのファイルは正常なアイコンの情報を持っているか
  ソースコードに問題点はないのか

[2] 環境  
 [2.1] OS : Windows, Linux等々
  OS:Windows7 32ビット HomeEdition

 [2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
  コンパイラ:Visual C# 2010 Express

[3] その他
 ・どの程度C言語を理解しているか
  オブジェクト指向を理解できる、作成できる

 ・ライブラリを使っている場合は何を使っているか
  今回は.NETを使っている(?)
添付ファイル
リスト6_14_アイコンの描画.zip
ソースコードとアイコンのセット
(37.76 KiB) ダウンロード数: 121 回

あんどーなつ
記事: 171
登録日時: 8年前
連絡を取る:

Re: C# アイコンの読み込みでエラーが起きる

#2

投稿記事 by あんどーなつ » 8年前

Visual Studio 2015 Professional で試験しました。
自前の.icoファイルは読めましたが、dicさんのは読めませんでした。

Form2.cs

コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Test1
{
    public partial class Form2 : Form
    {
        private Icon icon;

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            if (icon == null)
            {
                OpenFileDialog d = new OpenFileDialog();
                d.ShowDialog();
                icon = new Icon(d.FileName);
            }
            e.Graphics.DrawIcon(icon, 0, 0);
            e.Graphics.DrawIcon(icon, new Rectangle(icon.Width, 0, 200, 200));
        }
        public Form2()
        {
        }
    }
}
Program.cs

コード:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test1
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
    }
}

あんどーなつ
記事: 171
登録日時: 8年前
連絡を取る:

Re: C# アイコンの読み込みでエラーが起きる

#3

投稿記事 by あんどーなつ » 8年前

ちなみに私はアイコンウィザードというソフトで.icoファイルを作成しています。

http://www.vector.co.jp/soft/winnt/amus ... 1476170939

dic
記事: 658
登録日時: 15年前
住所: 宮崎県
連絡を取る:

Re: C# アイコンの読み込みでエラーが起きる

#4

投稿記事 by dic » 8年前

訂正

[2] 環境  
 [2.1] OS : Windows, Linux等々
  OS:Windows7 32ビット HomeEdition

  OS:Windows7 32ビット Professional Edtionでした。すいません。



あんどーなつ様の指定してくれたソフトは私の環境では動作しなかったので、
ネットからアイコンを拾ってきて入れ替えたところ、アイコンが表示されました。
私のアイコンのファイルがビットマップのままではダメなようでした。
(拡張子をicoにしただけのビットマップ)

解決しました。ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る