直列つなぎ。 -とある発達障害者の記録

知識と知識を繋ぐためのblog。 広汎性発達と診断されました。ぜんぜん役に立ってないけど。月収13万円、家賃4万円で生活するひつじ人間。

注釈C# カスタムコントロールサンプルの実行


C# で独自コントロールを使う方法
  

FileSelector

  実際の実行手順はちょっと複雑。
 作成環境の準備
  http://tech.junax.jp/custom-control-beginner/wfcb-vs-prepare/
 を参考にして
 

 1.普通に「Windows フォームアプリケーション」を作成
 2.ソリューションエクスプローラから、「追加」→「コンポーネントクラス」を選択。

Fileselector_create.png  ezgif-3706834748.gif
  ↑初GIFアニメ プラットフォームを問わないって良いよね。 
何故か消えてたのでわざわざドロップボックスに上げ直した。


 使用ツール
 動画からGIFアニメ作成:http://www.gigafree.net/media/conv/freevideotogifconverter.html
  (アプリよりオンラインツール側の方がサイズが小さくなる傾向)
サイズ圧縮:http://ezgif.com/resize/



 3.サンプルコードを、コンポーネントクラス(Component1.cs)側にコピペする。
Component1.Designer.cs の

    private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
        }

をコメントアウト。
 型 'FileSelector' は、'InitializeComponent' と呼ばれるメンバーを同じパラメーターの型で既に定義しています。    を解消出来る。




4.「ソリューションのビルド」あるいは「▶開始」をクリックし(多分)、コンポーネント:FileSelector を表示させる。上手くいくと下記のようになり、Form1に追加可能になる。

注:実行中はツールボックスは非表示になる。


 Fileselector_create.png 




Drag & Drop 可能なテキストボックス (TextBoxDd)

 1. 上記の3.サンプルコードをコピペ を行う

 2.デザイナーは行 のコードを処理できません。throw new notlmplementedException(); メソッド’InitializeConponent’内のコードはデザイナーのよって作成されるため~うんぬんTextboxadd.png


    public TextBoxDd()
        {
          //  InitializeComponent();  コメントアウトする

            AllowDrop = true;
        } 


 他にもエラー箇所があればコメントアウトで対応。
Component.Designer.cs内の
  protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

とか。

3.▶開始 を選択
これでちゃんと動作する。

 機能はエクスプローラ上からドラッグ&ドロップした時、フルパスをテキストボックス上に表示。



 他のも大体同様の手順で実行可能。



Spin TextBox

 唯一サンプルコードのコピペだけでは動作しない。
 initializeComponent()  つまり初期化用メソッドが欠けているため、自分で入れていく必要がある。 ツールボックスでnumericUpDown追加時に生成されるDesingers.csの内容をコピペしてもいい。

サンプルプロジェクト:https://box.yahoo.co.jp/guest/viewer?sid=box-l-jjsgnkx53gwi3lt2r7nmvpbfvm-1001&uniqid=a8c57586-fdf4-46d9-9984-2558072728e4&viewtype=detail



 Conponent4.cs 上に下記を追加

        private NumericUpDown numericUpDown1;
        private TextBox textBox1;  

private void InitializeComponent()
        {
            this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
            this.textBox1 = new System.Windows.Forms.TextBox();
            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
            this.SuspendLayout();
            //
            // numericUpDown1
            //
            this.numericUpDown1.Location = new System.Drawing.Point(106, 1);
            this.numericUpDown1.Name = "numericUpDown1";
            this.numericUpDown1.Size = new System.Drawing.Size(44, 19);
            this.numericUpDown1.TabIndex = 0;
            this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
            //
            // textBox1
            //
            this.textBox1.Location = new System.Drawing.Point(0, 0);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(100, 19);
            this.textBox1.TabIndex = 1;
            this.textBox1.TabStopChanged += new System.EventHandler(this.textBox1_TabStopChanged);
            this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
            //
            // SpinTextBox
            //
            this.Controls.Add(this.numericUpDown1);
            this.Controls.Add(this.textBox1);
            this.Name = "SpinTextBox";
            this.Size = new System.Drawing.Size(165, 27);
            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();

        } 

関連記事
スポンサーサイト

 Category: None

0 Comments

Leave a comment