質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

10611閲覧

別のファイル内のプロパティを参照したい

sheephuman

総合スコア112

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/09/08 11:23

編集2016/09/08 12:00

Visual Studio 2015でC#です

Microsoft Chart Controls を使って東京電力の電力使用状況をグラフ化する
に出ているchartの表示を実装したくて、

このように時系列にDataPointをプロットさせたい
このように時系列にDataPointをプロットさせたい

作成したプロジェクトファイル

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Costnote { public class CostPerDay { public DateTime Time { get; set; } /// <summary> /// /// </summary> public int Today { get; set; } /// <summary> /// /// </summary> public int Yesterday { get; set; } public CostPerDay(DateTime time, int today, int yesterday) { } public CostPerDay() { } public CostPerDay(string date, string time, string today, string yesterday) : this(DateTime.Parse(string.Format("{0} {1}:00", date, time)), int.Parse(today), int.Parse(yesterday)) //自身を継承して、日付フォーマットに差し替え? { } ```ここに言語を入力 //↓これを追加しようとするとエラーが出る //日付にパースしたあと、プロパティへの値の受け渡し? public ElectricityDemand(DateTime time, int today, int yesterday) { Time = time; Today = today; Yesterday = yesterday; } } }

このようにして、class1.csというファイル名で保存しました。ここからForm1.csでの呼び出し方が分かりません。 この後、

```ここに言語を入力

foreach (CostPerDay cp in elems)
{

dp.SetValueXY(cp.Time.Hour, cp.Today); chart1.Series[0].Points.Add(dp); }
と続けたいのです。 [C#で別ファイルにある自作クラスを呼び出す方法](http://mint.ldblog.jp/archives/19052548.html) も試しましたが、4.csc /reference:Class1.dll Form1.cs を入れるとエラーが出るという状況です。(Class1.dllは作成済み) 自力では手詰まりです。 エラー内容 >Form1.cs(7,28): error CS0234: 型または名前空間名 'DataVisualization' は名前空間 'System.Windows.Forms' に存在しません。アセンブリ参照が不足しています。 と出るのだが ![イメージ説明](4d8186c0e61e3b611e96f25f0430171e.jpeg) のように参照追加してデバッグしており、訳が分からない。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

VisualStudioのソリューションエクスプローラ上で、WindowsFormsApplication2の「参照」を右クリックすると、下の画像のようにメニューが表示されます。

イメージ説明

さらに、「参照の追加」をクリックすると、下の画像のように参照マネージャーが表示されます。

イメージ説明

左側に「アセンブリ」「プロジェクト」「共有プロジェクト」…と並んでいるツリーから「プロジェクト」を選択し、「ClassLibrary1」にチェックを入れてから「OK」を押してください。

以上の作業を行うと、WindowsFormsApplication2からClassLibrary1への参照が追加されるので、WindowsFormsApplication2内のコードからClassLibrary1の名前空間をusing出来るようになります。

ClassLibrary1のコードを見たところ「Costnote」という名前空間を使っているようなので、Form1.csの先頭に「using Costnote;」を追記してみてください。

CostPerDayクラスをめでたく利用できると思います。

投稿2016/09/08 17:02

MagoCat

総合スコア86

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sheephuman

2016/09/08 23:43

めでたく利用できました!  数時間掛けて分からないってのは勉強の仕方が悪いんでしょうね・・・。
guest

0

こんにちは。
エラーの出ている行の内容が書かれていないのが気になりますが……。

System.Windows.Forms.DataVisualizationというのは「アセンブリ名」であって「名前空間名」ではない所が引っかかります。
もしかしてですが、using System.Windows.Forms.DataVisualization;と記述していたりはしないでしょうか?
正しい名前空間名はSystem.Windows.Forms.DataVisualization.Chartingです。

投稿2016/09/08 23:37

tamoto

総合スコア4103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sheephuman

2016/09/08 23:41

一応、こちらでもそのようになっています。  エラーではなくて、コードのインスペクタでCostPerDayクラスが出ないので(CostPerDayクラスをForm1.csで使えない)、どうしたものかと考えていたのです。  回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問