VisualStudioのチュートリアルで練習
VisualStudioに慣れるためにチュートリアルをやってみました。
嵌ったところ
早速嵌った訳ですが、まず、ツールボックス上で、オペミスなんですが、Ctrl+C,Ctrl+Vをやってしまったところ、ボックス内のアイテムがコピーされることにビックリ。慌てて削除しましたが。
チュートリアルの作業指示で、nameプロパティを変更するところがあったのですが、その部分がプロパティビューでなかなか見つけられず。括弧がついたnameプロパティがあり、そこに記述するようでした。括弧つきとそうではないものは何が違うのでしょうか?
ソリューションエクスプローラで構造を確認すると、自動生成されているものがたくさんあるようです。
importされているライブラリがたくさんありますね。System.XML,System.XML.Linqってなにやってるんでしょうか?チュートリアル上のコーディングで、XMLつかった覚えはないのですが。
Program.csが生成されています。ここにmainメソッドがありました。
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace PictureViewer { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
Form1.csでのコーディングでつかった、UIコンポーネントの変数名がコード上どこに定義されているかというと、Form1.Designer.csにありました。恐ろしいほどの変数がありますね。設定したプロパティがここにコードとして反映されています。また、Partialクラスになっていました。ツリー上ですと、Form1の階層より深い位置にいますが、ファイル上は同じフォルに格納されています。
namespace PictureViewer { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.showButton = new System.Windows.Forms.Button(); this.clearButton = new System.Windows.Forms.Button(); this.backgroundButton = new System.Windows.Forms.Button(); this.closeButton = new System.Windows.Forms.Button(); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.colorDialog1 = new System.Windows.Forms.ColorDialog(); this.tableLayoutPanel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.flowLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.ColumnCount = 2; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 15F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 85F)); this.tableLayoutPanel1.Controls.Add(this.pictureBox1, 0, 0); this.tableLayoutPanel1.Controls.Add(this.checkBox1, 0, 1); this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 1, 1); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 90F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(556, 290); this.tableLayoutPanel1.TabIndex = 0; // // pictureBox1 // this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.tableLayoutPanel1.SetColumnSpan(this.pictureBox1, 2); this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.pictureBox1.Location = new System.Drawing.Point(3, 3); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(550, 255); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.Location = new System.Drawing.Point(3, 264); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(57, 17); this.checkBox1.TabIndex = 1; this.checkBox1.Text = "Strech"; this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged_1); // // flowLayoutPanel1 // this.flowLayoutPanel1.Controls.Add(this.showButton); this.flowLayoutPanel1.Controls.Add(this.clearButton); this.flowLayoutPanel1.Controls.Add(this.backgroundButton); this.flowLayoutPanel1.Controls.Add(this.closeButton); this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft; this.flowLayoutPanel1.Location = new System.Drawing.Point(86, 264); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; this.flowLayoutPanel1.Size = new System.Drawing.Size(467, 23); this.flowLayoutPanel1.TabIndex = 2; // // showButton // this.showButton.AutoSize = true; this.showButton.Location = new System.Drawing.Point(376, 3); this.showButton.Name = "showButton"; this.showButton.Size = new System.Drawing.Size(88, 23); this.showButton.TabIndex = 0; this.showButton.Text = "Show a picture"; this.showButton.UseVisualStyleBackColor = true; this.showButton.Click += new System.EventHandler(this.showButton_Click); // // clearButton // this.clearButton.AutoSize = true; this.clearButton.Location = new System.Drawing.Point(276, 3); this.clearButton.Name = "clearButton"; this.clearButton.Size = new System.Drawing.Size(94, 23); this.clearButton.TabIndex = 1; this.clearButton.Text = "Clear the picture"; this.clearButton.UseVisualStyleBackColor = true; this.clearButton.Click += new System.EventHandler(this.clearButton_Click); // // backgroundButton // this.backgroundButton.AutoSize = true; this.backgroundButton.Location = new System.Drawing.Point(133, 3); this.backgroundButton.Name = "backgroundButton"; this.backgroundButton.Size = new System.Drawing.Size(137, 23); this.backgroundButton.TabIndex = 2; this.backgroundButton.Text = "Set the background color"; this.backgroundButton.UseVisualStyleBackColor = true; this.backgroundButton.Click += new System.EventHandler(this.backgroundButton_Click); // // closeButton // this.closeButton.AutoSize = true; this.closeButton.Location = new System.Drawing.Point(52, 3); this.closeButton.Name = "closeButton"; this.closeButton.Size = new System.Drawing.Size(75, 23); this.closeButton.TabIndex = 3; this.closeButton.Text = "Close"; this.closeButton.UseVisualStyleBackColor = true; this.closeButton.Click += new System.EventHandler(this.closeButton_Click); // // openFileDialog1 // this.openFileDialog1.FileName = "openFileDialog1"; this.openFileDialog1.Filter = "JPEG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png|BMP Files (*.bmp)|*.bmp|All file" + "s (*.*)|*.*"; this.openFileDialog1.Title = "Select a picture file"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(556, 290); this.Controls.Add(this.tableLayoutPanel1); this.Name = "Form1"; this.Text = "Piture Viewer"; this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.flowLayoutPanel1.ResumeLayout(false); this.flowLayoutPanel1.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.CheckBox checkBox1; private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; private System.Windows.Forms.Button showButton; private System.Windows.Forms.Button clearButton; private System.Windows.Forms.Button backgroundButton; private System.Windows.Forms.Button closeButton; private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.ColorDialog colorDialog1; } }
App.configは.NETFrameworkのバージョンの記述のみのようです。あ、このファイルを読むために、System.XMLがあるのですね。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>