プログラミング

C#_Forms.Timer の使い方 ( 追記 )

ソース読んでいて、timer.Tick += new EventHandler( hogaFunction ); がない、と焦ったのでメモ。 以前書いたコードは、デザインのプロパティから設定していた。 故に、デリゲート ( timer.Tick ) がなかった。 どこにあるかというと、デザインのコードに記…

C#_動的に作成したコントロールの判別 ( 追記 )

前に書いたコードの追記。コントロー ルを格納したリストを使用したコード。前とほぼコード変わっていない。 ex )ボタンをクリックすると、そのボタン .text に AAA が追記される。 private int count = 0; private List<Button> buttonList = new List<Button>(); private v</button></button>…

C#_動的に作成したコントロールの判別

前の続き。判別するには、以下のコードを追記すればOK。 Control を配列に入れる。 Control.Tag を使う。 object sender から Tag の値を取り出す。 ※Control を入れた配列は ex) で使用していないが、生成した複数の Control を取得して処理したい時は、配…

C#_プログラムから生成した ( 動的 ) コントロールにイベントをつける

デリゲートというものを標準ライブラリが使っている。自分で デリゲート を定義する必要はなし。delegate:代表、委譲、委託。メソッドを参照するための型。 Control.Click += 自作メソッド; で実現できる。Control.Click は標準ライブラリ。Click 以外にも …

C#_デリゲートとは

動的コントロールにイベントつけようとしてデリゲートにつまづいた。 デリゲートはメソッドを参照するための型。クラスや構造体と同じ 1 つの型として扱われる。delegate:代表、委譲、委託 A という名のメソッドと、 a というデリゲート型の変数があったと…

C#_自動でスクロールバーを一番下に設定 ( 追記 )

コントロー ルを追加していくプログラムにおいて、追加後にスクロールバーを一番下に持ってくるソース。 ※動的コントロー ルの Location を 設定する時、スクロール分を引く必要あり。 スクロールされた状態で ↓ コードを実行すると、 textBox.Location = ne…

C#_プログラムからコントロールを追加 ( 動的に追加 )

panel.Controls.Add ( 追加コントロール ); を使用。form にも追加可。 ex)Add ボタンを押すごとに テキストボックスを 40 間隔で追加。 ※ panel1 設置。AutoScroll:True 、 Dock:Fill 。 private int count = 0; private void buttonAdd_Click(object sen…

C#_型の前に ? がある ( null 許容型 )

int? hoga; と、宣言された型の前に ? ( クエスチョン ) があるコード。 int? hoga とは null 許容型といい、 値型の型名の後ろに ? をつけることで null 値を格納できるようになる。 値型限定。参照型には付けられない。値型 ( int や char 、bool など ) …

C++/CLI_ C# の List と PointF を扱う

auto を使った方がソースは見やすいかも。ex ) は int 型の List System::Collections::Generic::List<int> ^ hogaList = gcnew System::Collections::Generic::List<int>(); //auto ^ hogaList = gcnew System::Collections::Generic::List<int>(); System::Drawing::Point</int></int></int>…

C++_ vector にて、最大値のイテレータを取得

イテレータ ≠ インデックス らしい。よく分からない。 std::vector<float>::iterator max = std::max_element(hoga.begin(), hoga.end()); size_t maxIndex = std::distance(hoga.begin(), max); maxIndex が 最大値のイテレータ。 hoga は vector<float> 。 distance で先</float></float>…

C#_Rectangle の Left と X

Left も X も 左上の座標 ( 隅と端だけど ) なのに、なんで二つあるんだろと思っていた。参照専用 と 参照及び設定 のプロパティだった。 青が 参照と設定が可。緑は参照のみ。 プロパティ 説明 X 左上隅の x 座標 Y 左上隅の y 座標 Width 幅 Height 高さ L…

C#_Button などコントロールを配列として扱える

↑ Button や TextBox などコントロールの型があるので、 配列や List に格納できるという意味。 ex )※textBox1 や buttonA などはデザインでツールボックスから設置済み。 TextBox[ ] textBoxAry = new TextBox[ ] { textBox1, textBox2, textBox3 }; for (i…

C#_要素全てが条件に合致していたら TRUE

要素内の全てが条件に合致していたらTrue としたい場合、All ( ) を用いる。 ex )配列の要素全てが 5 の倍数だった場合、All ( ) は True を返す。numAry は 全て 5 の倍数なので "Exist" が表示される。 int[ ] numAry = new[ ] { 10, 20, 35, 40, 50 }; if…

C#_要素のどれか一つでも条件に合致していたら

要素内のどれか一つでも条件に合致していたらTrue としたい場合、Any ( ) を用いる。 ex )配列の要素どれか一つでも 5 の倍数だった場合、Any ( ) は True を返す。numAry には 40 があるので "Exist" が表示される。 int[ ] numAry = new[ ] { 11, 28, 34, …

C++_生配列 ・ std::vector より std::array を使う

std::array 使った方がデータを扱うのが楽・安全、ということだと思う。 std::array の利点 at を使用すると境界チェックが行われるので安全にデータアクセスできる。 従来の C スタイルの配列とパフォーマンスが変わらない ( 速度同じ )。 std::vector と比…

C++_宣言した添え字の範囲外に代入した時

※生配列。std::array の場合は不明。※C 言語サイトを参照してるので、違うところあるかも。 結論から エラーが出なくとも、他の変数に ( 値が変わったりなど ) 影響する可能性がある。故に、宣言された範囲外のインデックスを持つ配列要素への代入は NG。 回…

C++/CLI_ List に要素を追加する

結論から。 hogeList->Add( xxx ); ソース System::Collections::Generic::List<int> ^ hogeList = gcnew System::Collections::Generic::List<int> ( ); //または //auto hogeList = gcnew System::Collections::Generic::List<int>( ); hogeList->Add(10); hogeList->Add(</int></int></int>…

C++_ std::array が使えない

「不完全な型は使用できません」 とコンパイルエラー。 ファイル冒頭に以下を追加する。 # include <array> これでstd::array<int, 5> hoga = { 0,1,2,3,4 }; のコンパイルエラー解消。 コンパイルエラー:構文が間違っている。文法レベルのエラー。 実行エラー:構文は問題</int,></array>…

C#_Form の追加ができない

フォームを新たに追加したら、デザインで以下のようなエラーが出た。 ファイル内にデザインできるクラスがないため、このファイルのデザイナーを表示できませんでした。アセンブリが参照されているか、及びすべてのプロジェクトがビルドされているかを確認し…

C#_pictureBox にある画像の拡張子調べ

using System.Drawing.Imaging; 必要 ImageCodecInfo[ ] decoders = ImageCodecInfo.GetImageDecoders(); foreach (ImageCodecInfo ici in decoders) { if (ici.FormatID == pictureBox1.Image.RawFormat.Guid) { Console.WriteLine(ici.FormatDescription +…

C#_選択したファイルを読み込んで、中身を別 Form に渡す

続き真新しいのは TextChanged( ) ぐらい。他は以前書いたのを使いまわし。 流れとしては、ファイルがあれば OK ボタンが有効になる。OK ボタンクリック。選択したファイルを読み込み。ファイル内容を変数に格納。値を Form1 に渡す。 【前提】buttonOK の D…

C#_openFileDialog で選択したパスを表示

フィルパス表示と「...」ボタンをまとめて設置できるツールがあると思っていたが、作る必要あり。 【前提】個々のツール設置。 流れとしては、Form1 からボタンをクリック。Form2 が開く。Form2 にはパス表示する textBox など設置。 Form2 のソース //File1…

C#_フォーム間での値受け渡し

getter 、setter を使用する。 右辺にくれば get 、左辺にくれば set ※コードは、Form2 form2 = new Form2() など色々略。 Form1 で Form2 にて設定した値を受け取る プログラムの流れは、Form2 で設定 → Form1 で受け取り。 Form1 string getName = form2.n…

C#_ 任意のボタンを DialogResult.OK にする

if ( form.ShowDialog() == DialogResult.OK )で、設置した任意ボタンを クリックした際に true にしたい時。 設置したボタンのプロパティ、 DialogResult を OK に設定する。 前記事書いてたわ。すっかり忘れてた。 以上。

C#_ドラッグ & ドロップ のコード

ドラッグ & ドロップ した画像 を pictureBox に表示。 drag:引きずる。drop:落とす。 【前提】・Panel設置。・Panel の AllowDropプロパティをTrue。・PictureBox 設置。 ファイルが Form や Panel などのコント ロール内にドラッグされると発生する。 pr…

C#_クリックした座標を取得

e.Location はPointToClient ( Control.MousePosition ) とほぼ同じ値。 ・PointToClient(e.Location) は 違う。ハマった。 ・PointToClient ( XY ) → XY におけるクライアント座標を算出。・クライアント座標 → Form や panel などコントロール上での領域。…

C++_ 保護されているメモリに~操作を行おうとしました。

保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。 このエラーを出した時は、基本 インデックスが配列の範囲外 という意味。(※ 自分の場合 ) C++ は、範囲外のインデックス要素変数を扱って…

C#_時間測定

関数呼び出してから戻るまでを測定したいなど。 ※Stopwatch クラスは、高解像力パフォーマンスカウンターがサポートされていれば使う。サポートされていなければ、システムタイマ ( System.Windows.Forms.Timer のこと? ) を使う。 高解像力パフォーマンス…

C#_割り算と掛け算の結果がおかしい

結論 int 型どうしの計算は小数点以下が切り捨てられる。 経緯 int / int * 100 の結果が 0 となる。int / int * 100.0 で試しても同様。 int a = 2; int b = 3; Console.WriteLine(a / b * 100); //0 と出力結果 2 / 3 = 0.6666 と電卓ではなる。しかし、C#…

C#_Chart でグラフ作成

コードで生成したデータをグラフに描画する。タイトルや凡例、グラフの色の変更などは後で。 前提知識 Chart には Series というグラフ・データのコレクションがある。 グラフの種類やプロットする時はこのメソッドを使用する。 コレクション:多数のオブジ…