OSDN Git Service

最小化時に落ちる不具合の修正,#regionの設定
authorkimikage <kimikage_ceo@hotmail.com>
Mon, 10 Jan 2011 00:10:43 +0000 (09:10 +0900)
committerkimikage <kimikage_ceo@hotmail.com>
Mon, 10 Jan 2011 00:10:43 +0000 (09:10 +0900)
Fugashi/BitSwitch.Designer.cs
Fugashi/BitSwitch.cs
Fugashi/BitSwitches4.Designer.cs
Fugashi/BitSwitches4.cs
Fugashi/BitSwitches4.resx
Fugashi/MainForm.Designer.cs
Fugashi/MainForm.cs
Fugashi/Properties/AssemblyInfo.cs

index 37c2a74..f9e0d99 100755 (executable)
@@ -64,6 +64,8 @@ namespace Fugashi
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.BackColor = System.Drawing.Color.Transparent;\r
             this.Controls.Add(this.label);\r
+            this.DoubleBuffered = true;\r
+            this.MinimumSize = new System.Drawing.Size(3, 3);\r
             this.Name = "BitSwitch";\r
             this.Size = new System.Drawing.Size(12, 24);\r
             this.SizeChanged += new System.EventHandler(this.BitSwitch_SizeChanged);\r
index 9f37ef1..29071f5 100755 (executable)
@@ -18,17 +18,34 @@ namespace Fugashi
 {\r
     public partial class BitSwitch : UserControl\r
     {\r
+        #region fields\r
         private bool state;\r
         private bool isExponential;\r
         private static Bitmap normal;\r
         private static Bitmap exponent;\r
         private static Bitmap hover;\r
+        #endregion\r
 \r
-        [Category("プロパティ変更")]\r
+        #region constructor\r
+        public BitSwitch()\r
+        {\r
+            InitializeComponent();\r
+            State = false;\r
+            if (BorderColor.IsEmpty)\r
+            {\r
+                BorderColor = Color.FromArgb(0xD5, 0xDF, 0xE5);\r
+            }\r
+            UpdateBackgroundImage();\r
+        }\r
+        #endregion\r
+\r
+        #region properties\r
+\r
+        [Category("Behavior")]\r
         public event System.EventHandler StateChanged;\r
 \r
 \r
-        [Category("データ")]\r
+        [Category("Data")]\r
         [DefaultValue(typeof(bool), "True")]\r
         public bool State\r
         {\r
@@ -43,7 +60,7 @@ namespace Fugashi
             }\r
         }\r
 \r
-        [Category("表示")]\r
+        [Category("Appearance")]\r
         [DefaultValue(typeof(Color), "LightSteelBlue")]\r
         public Color BorderColor\r
         {\r
@@ -51,6 +68,8 @@ namespace Fugashi
             set;\r
         }\r
 \r
+        [CategoryAttribute("Data")]\r
+        [DefaultValue(typeof(bool), "False")]\r
         public bool IsExponential\r
         {\r
             get\r
@@ -64,17 +83,54 @@ namespace Fugashi
             }\r
         }\r
 \r
-        public BitSwitch()\r
+        #endregion\r
+\r
+        #region event handlers\r
+        private void label_Click(object sender, EventArgs e)\r
         {\r
-            InitializeComponent();\r
-            State = false;\r
-            if (BorderColor.IsEmpty)\r
+            Focus();\r
+            State = !state;\r
+        }\r
+\r
+        private void label_MouseLeave(object sender, EventArgs e)\r
+        {\r
+            BackgroundImage = IsExponential ? exponent : normal;\r
+            Update();\r
+        }\r
+\r
+        private void label_MouseEnter(object sender, EventArgs e)\r
+        {\r
+            BackgroundImage = hover;\r
+            Update();\r
+        }\r
+\r
+        private void label_Paint(object sender, PaintEventArgs e)\r
+        {\r
+            if (!Enabled)\r
             {\r
-                BorderColor = Color.FromArgb(0xD5, 0xDF, 0xE5);\r
+                e.Graphics.FillRectangle(\r
+                    Brushes.LightGray, 0, 0, Width, Height);\r
+            }\r
+            using (Pen p = new Pen(BorderColor, 1))\r
+            {\r
+                int width = Tag != null ? Width - 1 : Width;\r
+                e.Graphics.DrawRectangle(p, 0, 0, width, Height - 1);\r
+            }\r
+        }\r
+\r
+        private void BitSwitch_SizeChanged(object sender, EventArgs e)\r
+        {\r
+            if (Width <= MinimumSize.Width || Height <= MinimumSize.Height)\r
+            {\r
+                return;\r
             }\r
             UpdateBackgroundImage();\r
         }\r
 \r
+        #endregion\r
+\r
+        #region private methods\r
+\r
         private void CreateNormalBackgroundImage()\r
         {\r
             if (normal is Bitmap && normal.Size == Size)\r
@@ -108,15 +164,19 @@ namespace Fugashi
         private Bitmap CreateBackGroundImage(\r
                             Color hilight, Color light, Color face, Color dark)\r
         {\r
-            Bitmap bmp  = new Bitmap(Width, Height);\r
+            if (Width < MinimumSize.Width || Height < MinimumSize.Height)\r
+            {\r
+                return null;\r
+            }\r
+            Bitmap bmp = new Bitmap(Width, Height);\r
             Graphics g = Graphics.FromImage(bmp);\r
             int border = (int)(Height * 0.48);\r
             Rectangle upper = new Rectangle(0, 0, Width, border);\r
             Rectangle lower = new Rectangle(0, border, Width, Height);\r
-            LinearGradientBrush brushL = \r
+            LinearGradientBrush brushL =\r
                                 new LinearGradientBrush(upper, hilight, light,\r
                                                 LinearGradientMode.Vertical);\r
-            LinearGradientBrush brushD = \r
+            LinearGradientBrush brushD =\r
                                     new LinearGradientBrush(lower, face, dark,\r
                                                 LinearGradientMode.Vertical);\r
             Pen edge = new Pen(hilight, 1);\r
@@ -130,52 +190,15 @@ namespace Fugashi
             return bmp;\r
         }\r
 \r
-        private void label_Click(object sender, EventArgs e)\r
-        {\r
-            Focus();\r
-            State = !state;\r
-        }\r
-\r
-        private void label_MouseLeave(object sender, EventArgs e)\r
-        {\r
-            BackgroundImage = IsExponential? exponent : normal;\r
-            Update();\r
-        }\r
-\r
-        private void label_MouseEnter(object sender, EventArgs e)\r
-        {\r
-            BackgroundImage = hover;\r
-            Update();\r
-        }\r
-\r
-        private void label_Paint(object sender, PaintEventArgs e)\r
-        {\r
-            if (!Enabled)\r
-            {\r
-                e.Graphics.FillRectangle(\r
-                    Brushes.LightGray, 0, 0, Width, Height);\r
-            }\r
-            using (Pen p = new Pen(BorderColor, 1))\r
-            {\r
-                int width = Tag != null ? Width - 1 : Width;\r
-                e.Graphics.DrawRectangle(p, 0, 0, width, Height - 1);\r
-            }\r
-        }\r
-\r
         public void SetStateWithoutEvent(bool state)\r
         {\r
             this.state = state;\r
             label.Text = state ? "1" : "0";\r
             label.ForeColor = state ? Color.DarkSlateGray : Color.SteelBlue;\r
-            label.Font = new Font(label.Font, \r
+            label.Font = new Font(label.Font,\r
                                 state ? FontStyle.Bold : FontStyle.Regular);\r
         }\r
 \r
-        private void BitSwitch_SizeChanged(object sender, EventArgs e)\r
-        {\r
-            UpdateBackgroundImage();\r
-        }\r
-\r
         private void UpdateBackgroundImage()\r
         {\r
             bool mouseOver = BackgroundImage == hover;\r
@@ -191,5 +214,7 @@ namespace Fugashi
                 BackgroundImage = hover;\r
             }\r
         }\r
+\r
+        #endregion\r
     }\r
 }\r
index 7b41db2..7707cee 100755 (executable)
                         | System.Windows.Forms.AnchorStyles.Right)));\r
             this.label.Font = new System.Drawing.Font("Tahoma", 8F);\r
             this.label.ForeColor = System.Drawing.Color.MidnightBlue;\r
-            this.label.Location = new System.Drawing.Point(28, 0);\r
+            this.label.Location = new System.Drawing.Point(34, 0);\r
+            this.label.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);\r
             this.label.Name = "label";\r
-            this.label.Size = new System.Drawing.Size(23, 13);\r
+            this.label.Size = new System.Drawing.Size(28, 16);\r
             this.label.TabIndex = 38;\r
             this.label.Text = "0";\r
             this.label.TextAlign = System.Drawing.ContentAlignment.BottomRight;\r
             this.table.Controls.Add(this.b2, 1, 0);\r
             this.table.Controls.Add(this.b0, 3, 0);\r
             this.table.Controls.Add(this.b1, 2, 0);\r
-            this.table.Location = new System.Drawing.Point(0, 16);\r
+            this.table.Location = new System.Drawing.Point(0, 19);\r
+            this.table.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);\r
             this.table.Name = "table";\r
             this.table.RowCount = 1;\r
             this.table.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
-            this.table.Size = new System.Drawing.Size(47, 25);\r
+            this.table.Size = new System.Drawing.Size(56, 30);\r
             this.table.TabIndex = 39;\r
             // \r
             // b3\r
@@ -83,8 +85,9 @@
             this.b3.IsExponential = false;\r
             this.b3.Location = new System.Drawing.Point(0, 0);\r
             this.b3.Margin = new System.Windows.Forms.Padding(0);\r
+            this.b3.MinimumSize = new System.Drawing.Size(4, 4);\r
             this.b3.Name = "b3";\r
-            this.b3.Size = new System.Drawing.Size(11, 25);\r
+            this.b3.Size = new System.Drawing.Size(14, 30);\r
             this.b3.State = false;\r
             this.b3.TabIndex = 3;\r
             // \r
             this.b2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;\r
             this.b2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(223)))), ((int)(((byte)(229)))));\r
             this.b2.IsExponential = false;\r
-            this.b2.Location = new System.Drawing.Point(11, 0);\r
+            this.b2.Location = new System.Drawing.Point(14, 0);\r
             this.b2.Margin = new System.Windows.Forms.Padding(0);\r
+            this.b2.MinimumSize = new System.Drawing.Size(4, 4);\r
             this.b2.Name = "b2";\r
-            this.b2.Size = new System.Drawing.Size(11, 25);\r
+            this.b2.Size = new System.Drawing.Size(14, 30);\r
             this.b2.State = false;\r
             this.b2.TabIndex = 2;\r
             // \r
             this.b0.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;\r
             this.b0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(223)))), ((int)(((byte)(229)))));\r
             this.b0.IsExponential = false;\r
-            this.b0.Location = new System.Drawing.Point(33, 0);\r
+            this.b0.Location = new System.Drawing.Point(42, 0);\r
             this.b0.Margin = new System.Windows.Forms.Padding(0);\r
+            this.b0.MinimumSize = new System.Drawing.Size(4, 4);\r
             this.b0.Name = "b0";\r
-            this.b0.Size = new System.Drawing.Size(11, 25);\r
+            this.b0.Size = new System.Drawing.Size(14, 30);\r
             this.b0.State = false;\r
             this.b0.TabIndex = 0;\r
             this.b0.Tag = "true";\r
             this.b1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;\r
             this.b1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(213)))), ((int)(((byte)(223)))), ((int)(((byte)(229)))));\r
             this.b1.IsExponential = false;\r
-            this.b1.Location = new System.Drawing.Point(22, 0);\r
+            this.b1.Location = new System.Drawing.Point(28, 0);\r
             this.b1.Margin = new System.Windows.Forms.Padding(0);\r
+            this.b1.MinimumSize = new System.Drawing.Size(4, 4);\r
             this.b1.Name = "b1";\r
-            this.b1.Size = new System.Drawing.Size(11, 25);\r
+            this.b1.Size = new System.Drawing.Size(14, 30);\r
             this.b1.State = false;\r
             this.b1.TabIndex = 1;\r
             // \r
             // BitSwitches4\r
             // \r
-            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);\r
+            this.AutoScaleDimensions = new System.Drawing.SizeF(115F, 115F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;\r
             this.Controls.Add(this.table);\r
             this.Controls.Add(this.label);\r
+            this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);\r
             this.Name = "BitSwitches4";\r
-            this.Size = new System.Drawing.Size(50, 43);\r
+            this.Size = new System.Drawing.Size(60, 52);\r
             this.SizeChanged += new System.EventHandler(this.BitSwitches4_SizeChanged);\r
             this.table.ResumeLayout(false);\r
             this.ResumeLayout(false);\r
index f93fa8c..f7d6a18 100755 (executable)
@@ -1,4 +1,11 @@
-using System;\r
+/*\r
+ *     Fugashi Project\r
+ *\r
+ *     This software is distributed under a BSD-style license.\r
+ *     See license.txt for more information.\r
+ */\r
+\r
+using System;\r
 using System.Collections.Generic;\r
 using System.ComponentModel;\r
 using System.Drawing;\r
@@ -10,13 +17,20 @@ namespace Fugashi
 {\r
     public partial class BitSwitches4 : UserControl\r
     {\r
+        #region fields\r
         private int startBit;\r
+        #endregion\r
+\r
+        #region constructor\r
+\r
         public BitSwitches4()\r
         {\r
             InitializeComponent();\r
         }\r
+        #endregion\r
 \r
-        [Category("データ")]\r
+        #region properties\r
+        [CategoryAttribute("Data")]\r
         [DefaultValue(typeof(int), "-1")]\r
         public int StartBit\r
         {\r
@@ -62,7 +76,9 @@ namespace Fugashi
                 return b3;\r
             }\r
         }\r
+        #endregion\r
 \r
+        #region private methods\r
         private void Coordinate()\r
         {\r
             int y = startBit < 32 ? label.Size.Height : 0;\r
@@ -81,6 +97,6 @@ namespace Fugashi
             int y = startBit < 32 ? label.Size.Height : 0;\r
             table.Location = new Point(table.Location.X, y);\r
         }\r
-\r
+        #endregion\r
     }\r
 }\r
index 368d7ba..469e70d 100755 (executable)
   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
   <data name="b3.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAsAAAAZCAYAAADnstS2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
-        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE+VztEK\r
-        gzAQRNHp//+imiiVpiIiiIi11u5s8pyNC5d5OYQ8LjmU3nmSlx2O46eSa4V9j5hrhW2L/+BaYV0j5lph\r
-        WSLmWmGev4q5VpimiLlWGMdDMdcKwxAx1wohfBRzrVBVlWKuFeq6Vsy1EuwSdoLzCfYJe8H50DStYq6V\r
-        4C7hTnA+OPdUzLW6i/v0ci8v54P3L8VcK8Eh4SA4n+C34pJD2w5XaX9xMuf+td64xAAAAABJRU5ErkJg\r
-        gg==\r
+        iVBORw0KGgoAAAANSUhEUgAAAA4AAAAeCAYAAAAcni9KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAAEa8AABGvAff9S4QAAADKSURBVDhPnc5pCsJgDIThuf8Zu7vVFhFRRFq3Sb4cINPA\r
+        y/x6IPhtPHw+2yTW9evSVgnLUqCtEl6v8qutEp7PAm2V8HgUaKuE+71AWyXcbm+Htkq4Xgu0VcLlUqCt\r
+        EuZ5dWirhGkq0FYJ47g4tFVCVVUObZVQ17VDWyXCJmBDmI+wDdgS5iPsAnaE+dA0vUNbJcIh4ECYD227\r
+        c2irRLgPuCfMR3gIeCDMR3gMeCTMh647ObRVIhwDjoT5CM8Bz4T5CCeH6qHv59+W/p0oMG24BjG/AAAA\r
+        AElFTkSuQmCC\r
 </value>\r
   </data>\r
   <data name="b2.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAsAAAAZCAYAAADnstS2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
-        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE+VztEK\r
-        gzAQRNHp//+imiiVpiIiiIi11u5s8pyNC5d5OYQ8LjmU3nmSlx2O46eSa4V9j5hrhW2L/+BaYV0j5lph\r
-        WSLmWmGev4q5VpimiLlWGMdDMdcKwxAx1wohfBRzrVBVlWKuFeq6Vsy1EuwSdoLzCfYJe8H50DStYq6V\r
-        4C7hTnA+OPdUzLW6i/v0ci8v54P3L8VcK8Eh4SA4n+C34pJD2w5XaX9xMuf+td64xAAAAABJRU5ErkJg\r
-        gg==\r
+        iVBORw0KGgoAAAANSUhEUgAAAA4AAAAeCAYAAAAcni9KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAAEa8AABGvAff9S4QAAADKSURBVDhPnc5pCsJgDIThuf8Zu7vVFhFRRFq3Sb4cINPA\r
+        y/x6IPhtPHw+2yTW9evSVgnLUqCtEl6v8qutEp7PAm2V8HgUaKuE+71AWyXcbm+Htkq4Xgu0VcLlUqCt\r
+        EuZ5dWirhGkq0FYJ47g4tFVCVVUObZVQ17VDWyXCJmBDmI+wDdgS5iPsAnaE+dA0vUNbJcIh4ECYD227\r
+        c2irRLgPuCfMR3gIeCDMR3gMeCTMh647ObRVIhwDjoT5CM8Bz4T5CCeH6qHv59+W/p0oMG24BjG/AAAA\r
+        AElFTkSuQmCC\r
 </value>\r
   </data>\r
   <data name="b0.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAsAAAAZCAYAAADnstS2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
-        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE+VztEK\r
-        gzAQRNHp//+imiiVpiIiiIi11u5s8pyNC5d5OYQ8LjmU3nmSlx2O46eSa4V9j5hrhW2L/+BaYV0j5lph\r
-        WSLmWmGev4q5VpimiLlWGMdDMdcKwxAx1wohfBRzrVBVlWKuFeq6Vsy1EuwSdoLzCfYJe8H50DStYq6V\r
-        4C7hTnA+OPdUzLW6i/v0ci8v54P3L8VcK8Eh4SA4n+C34pJD2w5XaX9xMuf+td64xAAAAABJRU5ErkJg\r
-        gg==\r
+        iVBORw0KGgoAAAANSUhEUgAAAA4AAAAeCAYAAAAcni9KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAAEa8AABGvAff9S4QAAADKSURBVDhPnc5pCsJgDIThuf8Zu7vVFhFRRFq3Sb4cINPA\r
+        y/x6IPhtPHw+2yTW9evSVgnLUqCtEl6v8qutEp7PAm2V8HgUaKuE+71AWyXcbm+Htkq4Xgu0VcLlUqCt\r
+        EuZ5dWirhGkq0FYJ47g4tFVCVVUObZVQ17VDWyXCJmBDmI+wDdgS5iPsAnaE+dA0vUNbJcIh4ECYD227\r
+        c2irRLgPuCfMR3gIeCDMR3gMeCTMh647ObRVIhwDjoT5CM8Bz4T5CCeH6qHv59+W/p0oMG24BjG/AAAA\r
+        AElFTkSuQmCC\r
 </value>\r
   </data>\r
   <data name="b1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
-        iVBORw0KGgoAAAANSUhEUgAAAAsAAAAZCAYAAADnstS2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
-        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE+VztEK\r
-        gzAQRNHp//+imiiVpiIiiIi11u5s8pyNC5d5OYQ8LjmU3nmSlx2O46eSa4V9j5hrhW2L/+BaYV0j5lph\r
-        WSLmWmGev4q5VpimiLlWGMdDMdcKwxAx1wohfBRzrVBVlWKuFeq6Vsy1EuwSdoLzCfYJe8H50DStYq6V\r
-        4C7hTnA+OPdUzLW6i/v0ci8v54P3L8VcK8Eh4SA4n+C34pJD2w5XaX9xMuf+td64xAAAAABJRU5ErkJg\r
-        gg==\r
+        iVBORw0KGgoAAAANSUhEUgAAAA4AAAAeCAYAAAAcni9KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAAEa8AABGvAff9S4QAAADKSURBVDhPnc5pCsJgDIThuf8Zu7vVFhFRRFq3Sb4cINPA\r
+        y/x6IPhtPHw+2yTW9evSVgnLUqCtEl6v8qutEp7PAm2V8HgUaKuE+71AWyXcbm+Htkq4Xgu0VcLlUqCt\r
+        EuZ5dWirhGkq0FYJ47g4tFVCVVUObZVQ17VDWyXCJmBDmI+wDdgS5iPsAnaE+dA0vUNbJcIh4ECYD227\r
+        c2irRLgPuCfMR3gIeCDMR3gMeCTMh647ObRVIhwDjoT5CM8Bz4T5CCeH6qHv59+W/p0oMG24BjG/AAAA\r
+        AElFTkSuQmCC\r
 </value>\r
   </data>\r
 </root>
\ No newline at end of file
index d6f164a..63e9aa6 100755 (executable)
@@ -47,8 +47,8 @@ namespace Fugashi
             this.radio4B = new System.Windows.Forms.RadioButton();\r
             this.radio2B = new System.Windows.Forms.RadioButton();\r
             this.radio1B = new System.Windows.Forms.RadioButton();\r
-            this.textValue = new System.Windows.Forms.TextBox();\r
-            this.textHex = new System.Windows.Forms.TextBox();\r
+            this.textValue = new System.Windows.Forms.MaskedTextBox();\r
+            this.textHex = new System.Windows.Forms.MaskedTextBox();\r
             this.buttonLsh = new System.Windows.Forms.Button();\r
             this.buttonRsh = new System.Windows.Forms.Button();\r
             this.buttonInc = new System.Windows.Forms.Button();\r
@@ -217,25 +217,29 @@ namespace Fugashi
             // \r
             // textValue\r
             // \r
+            this.textValue.AsciiOnly = true;\r
             this.textValue.Font = new System.Drawing.Font("MS UI Gothic", 10.01739F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
+            this.textValue.ImeMode = System.Windows.Forms.ImeMode.Disable;\r
             this.textValue.Location = new System.Drawing.Point(57, 33);\r
             this.textValue.Name = "textValue";\r
             this.textValue.Size = new System.Drawing.Size(255, 23);\r
             this.textValue.TabIndex = 87;\r
             this.textValue.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;\r
-            this.textValue.TextChanged += new System.EventHandler(this.textValue_TextChanged);\r
             this.textValue.Leave += new System.EventHandler(this.textValue_Leave);\r
+            this.textValue.TextChanged += new System.EventHandler(this.textValue_TextChanged);\r
             // \r
             // textHex\r
             // \r
+            this.textHex.AsciiOnly = true;\r
             this.textHex.Font = new System.Drawing.Font("MS UI Gothic", 10.01739F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
+            this.textHex.ImeMode = System.Windows.Forms.ImeMode.Disable;\r
             this.textHex.Location = new System.Drawing.Point(57, 64);\r
             this.textHex.Name = "textHex";\r
             this.textHex.Size = new System.Drawing.Size(255, 23);\r
             this.textHex.TabIndex = 88;\r
             this.textHex.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;\r
-            this.textHex.TextChanged += new System.EventHandler(this.textHex_TextChanged);\r
             this.textHex.Leave += new System.EventHandler(this.textHex_Leave);\r
+            this.textHex.TextChanged += new System.EventHandler(this.textHex_TextChanged);\r
             // \r
             // buttonLsh\r
             // \r
@@ -612,8 +616,8 @@ namespace Fugashi
         private System.Windows.Forms.RadioButton radio4B;\r
         private System.Windows.Forms.RadioButton radio2B;\r
         private System.Windows.Forms.RadioButton radio1B;\r
-        private System.Windows.Forms.TextBox textValue;\r
-        private System.Windows.Forms.TextBox textHex;\r
+        private System.Windows.Forms.MaskedTextBox textValue;\r
+        private System.Windows.Forms.MaskedTextBox textHex;\r
         private System.Windows.Forms.Label labelValue;\r
         private System.Windows.Forms.Label labelHex;\r
         private BitSwitches4 bits0;\r
index 2e85e84..6854d1a 100755 (executable)
@@ -17,9 +17,12 @@ namespace Fugashi
 {\r
     public partial class MainForm : Form\r
     {\r
+        #region fields\r
         private BitSwitch[] bits;\r
         private int length = 4;\r
+        #endregion\r
 \r
+        #region constructor\r
         public MainForm()\r
         {\r
             InitializeComponent();\r
@@ -47,6 +50,28 @@ namespace Fugashi
 \r
             PerformAutoScale();\r
         }\r
+        #endregion\r
+\r
+        #region event handlers\r
+\r
+        private void MainForm_KeyDown(object sender, KeyEventArgs e)\r
+        {\r
+            if (e.Alt)\r
+            {\r
+                switch (e.KeyCode)\r
+                {\r
+                    case Keys.V:\r
+                        textValue.Focus();\r
+                        break;\r
+                    case Keys.H:\r
+                        textHex.Focus();\r
+                        break;\r
+                    default:\r
+                        return;\r
+                }\r
+                e.SuppressKeyPress = true;\r
+            }\r
+        }\r
 \r
         private void radioUint_CheckedChanged(object sender, EventArgs e)\r
         {\r
@@ -92,75 +117,6 @@ namespace Fugashi
             BitChanged(null, null);\r
         }\r
 \r
-        private void SetForFloatingPoint(bool isDouble)\r
-        {\r
-            for (int i = 23; i < 31; ++i)\r
-            {\r
-                bits[i].IsExponential = !isDouble;\r
-            }\r
-            for (int i = 52; i < 63; ++i)\r
-            {\r
-                bits[i].IsExponential = isDouble;\r
-            }\r
-        }\r
-\r
-        private void SetForInteger()\r
-        {\r
-            for (int i = 0; i < 64; ++i)\r
-            {\r
-                bits[i].IsExponential = false;\r
-            }\r
-        }\r
-\r
-        private byte[] GetBytes()\r
-        {\r
-            byte[] b = new Byte[8];\r
-            int i = 0;\r
-            for (int j = 0; j < 8; ++j)\r
-            {\r
-                b[j] = 0;\r
-                i += 8;\r
-                for (int k = 0; k < 8; ++k)\r
-                {\r
-                    b[j] = (byte)(b[j] << 1 | (bits[--i].State ? 1 : 0));\r
-                }\r
-                i += 8;\r
-            }\r
-            return b;\r
-        }\r
-\r
-        private long ToInt64(byte[] bytes)\r
-        {\r
-            switch (length)\r
-            {\r
-                case 1:\r
-                    return (sbyte)bytes[0];\r
-                case 2:\r
-                    return BitConverter.ToInt16(bytes, 0);\r
-                case 4:\r
-                    return BitConverter.ToInt32(bytes, 0);\r
-                case 8:\r
-                    return BitConverter.ToInt64(bytes, 0);\r
-            }\r
-            return 0;\r
-        }\r
-\r
-        private ulong ToUInt64(byte[] bytes)\r
-        {\r
-            switch (length)\r
-            {\r
-                case 1:\r
-                    return bytes[0];\r
-                case 2:\r
-                    return BitConverter.ToUInt16(bytes, 0);\r
-                case 4:\r
-                    return BitConverter.ToUInt32(bytes, 0);\r
-                case 8:\r
-                    return BitConverter.ToUInt64(bytes, 0);\r
-            }\r
-            return 0;\r
-        }\r
-\r
         private void radio8B_CheckedChanged(object sender, EventArgs e)\r
         {\r
             if (radio8B.Checked)\r
@@ -204,88 +160,112 @@ namespace Fugashi
             }\r
         }\r
 \r
-        private void SetLength(int length)\r
+        \r
+        private void buttonInc_Click(object sender, EventArgs e)\r
         {\r
-            this.length = length;\r
-            int b = length * 8;\r
-            for (int i = 8; i < b; ++i)\r
-            {\r
-                bits[i].Enabled = true;\r
-            }\r
-            for (int i = b; i < 64; ++i)\r
-            {\r
-                bits[i].Enabled = false;\r
-            }\r
             if (radioFloat.Checked)\r
             {\r
-                textValue_TextChanged(null, null);\r
+                if (length == 4)\r
+                {\r
+                    int value = BitConverter.ToInt32(GetBytes(), 0);\r
+                    if (value == -0x80000000)\r
+                    {\r
+                        value = 0;\r
+                    }\r
+                    else\r
+                    {\r
+                        value += value >= 0 ? 1 : -1;\r
+                    }\r
+                    UpdateAll(BitConverter.GetBytes(value));\r
+                }\r
+                else\r
+                {\r
+                    long value = BitConverter.ToInt64(GetBytes(), 0);\r
+                    if (value == (1L << 63))\r
+                    {\r
+                        value = 0;\r
+                    }\r
+                    else\r
+                    {\r
+                        value += value >= 0 ? 1 : -1;\r
+                    }\r
+                    UpdateAll(BitConverter.GetBytes(value));\r
+                }\r
             }\r
             else\r
             {\r
-                BitChanged(null, null);\r
+                ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+                UpdateAll(BitConverter.GetBytes(++value));\r
             }\r
         }\r
 \r
-        private void BitChanged(object sender, EventArgs e)\r
-        {\r
-            byte[] b = GetBytes();\r
-            UpdateValue(b);\r
-            UpdateHex(b);\r
-        }\r
-\r
-        private void UpdateValue(byte[] bytes)\r
+        private void buttonDec_Click(object sender, EventArgs e)\r
         {\r
-            if (radioUint.Checked)\r
-            {\r
-                textValue.Text = ToUInt64(bytes).ToString();\r
-            }\r
-            else if (radioInt.Checked)\r
-            {\r
-                textValue.Text = ToInt64(bytes).ToString();\r
-            }\r
-            else if (radioFloat.Checked)\r
+            if (radioFloat.Checked)\r
             {\r
                 if (length == 4)\r
                 {\r
-                    float value = BitConverter.ToSingle(bytes, 0);\r
-                    textValue.Text = value.ToString("g8");\r
+                    int value = BitConverter.ToInt32(GetBytes(), 0);\r
+                    if (value == 0)\r
+                    {\r
+                        value = 1 << 31;\r
+                    }\r
+                    else\r
+                    {\r
+                        value -= value >= 0 ? 1 : -1;\r
+                    }\r
+                    UpdateAll(BitConverter.GetBytes(value));\r
                 }\r
                 else\r
                 {\r
-                    double value = BitConverter.ToDouble(bytes, 0);\r
-                    textValue.Text = value.ToString("g17");\r
+                    long value = BitConverter.ToInt64(GetBytes(), 0);\r
+                    if (value == 0)\r
+                    {\r
+                        value = 1L << 63;\r
+                    }\r
+                    else\r
+                    {\r
+                        value -= value >= 0 ? 1 : -1;\r
+                    }\r
+                    UpdateAll(BitConverter.GetBytes(value));\r
                 }\r
             }\r
+            else\r
+            {\r
+                ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+                UpdateAll(BitConverter.GetBytes(--value));\r
+            }\r
         }\r
 \r
-        private void UpdateHex(byte[] bytes)\r
+        private void buttonClr_Click(object sender, EventArgs e)\r
         {\r
-            textHex.Text = "";\r
-            for (int i = length - 1; i >= 0; --i)\r
-            {\r
-                textHex.Text += bytes[i].ToString("X2");\r
-            }\r
+            UpdateAll(BitConverter.GetBytes((ulong)0));\r
         }\r
 \r
-        private void UpdateBits(byte[] bytes)\r
+        private void buttonNot_Click(object sender, EventArgs e)\r
         {\r
-            int i = 0;\r
-            for (int j = 0; j < length; ++j)\r
-            {\r
-                int mask = 1;\r
-                for (int k = 0; k < 8; ++k)\r
-                {\r
-                    bits[i++].SetStateWithoutEvent((bytes[j] & mask) != 0);\r
-                    mask <<= 1;\r
-                }\r
-            }\r
+            ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+            UpdateAll(BitConverter.GetBytes(~value));\r
         }\r
 \r
-        private void UpdateAll(byte[] bytes)\r
+        private void buttonLsh_Click(object sender, EventArgs e)\r
         {\r
-            UpdateBits(bytes);\r
-            UpdateValue(bytes);\r
-            UpdateHex(bytes);\r
+            ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+            UpdateAll(BitConverter.GetBytes(value << 1));\r
+        }\r
+\r
+        private void buttonRsh_Click(object sender, EventArgs e)\r
+        {\r
+            if (radioInt.Checked)\r
+            {\r
+                long value = ToInt64(GetBytes());\r
+                UpdateAll(BitConverter.GetBytes(value >> 1));\r
+            }\r
+            else\r
+            {\r
+                ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+                UpdateAll(BitConverter.GetBytes(value >> 1));\r
+            }\r
         }\r
 \r
         private void textHex_TextChanged(object sender, EventArgs e)\r
@@ -342,140 +322,175 @@ namespace Fugashi
             UpdateHex(b);\r
         }\r
 \r
-        private void buttonInc_Click(object sender, EventArgs e)\r
+        private void textValue_Leave(object sender, EventArgs e)\r
         {\r
-            if (radioFloat.Checked)\r
+            UpdateValue(GetBytes());\r
+        }\r
+\r
+        private void textHex_Leave(object sender, EventArgs e)\r
+        {\r
+            UpdateHex(GetBytes());\r
+        }\r
+\r
+        private void BitChanged(object sender, EventArgs e)\r
+        {\r
+            byte[] b = GetBytes();\r
+            UpdateValue(b);\r
+            UpdateHex(b);\r
+        }\r
+\r
+        #endregion\r
+\r
+        #region private methods\r
+\r
+        private void SetForFloatingPoint(bool isDouble)\r
+        {\r
+            for (int i = 23; i < 31; ++i)\r
             {\r
-                if (length == 4)\r
-                {\r
-                    int value = BitConverter.ToInt32(GetBytes(), 0);\r
-                    if (value == -0x80000000)\r
-                    {\r
-                        value = 0;\r
-                    }\r
-                    else\r
-                    {\r
-                        value += value >= 0 ? 1 : -1;\r
-                    }\r
-                    UpdateAll(BitConverter.GetBytes(value));\r
-                }\r
-                else\r
-                {\r
-                    long value = BitConverter.ToInt64(GetBytes(), 0);\r
-                    if (value == (1L << 63))\r
-                    {\r
-                        value = 0;\r
-                    }\r
-                    else\r
-                    {\r
-                        value += value >= 0 ? 1 : -1;\r
-                    }\r
-                    UpdateAll(BitConverter.GetBytes(value));\r
-                }\r
+                bits[i].IsExponential = !isDouble;\r
             }\r
-            else\r
+            for (int i = 52; i < 63; ++i)\r
             {\r
-                ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
-                UpdateAll(BitConverter.GetBytes(++value));\r
+                bits[i].IsExponential = isDouble;\r
             }\r
+            textValue.ValidatingType = typeof(Double);\r
         }\r
 \r
-        private void buttonDec_Click(object sender, EventArgs e)\r
+        private void SetForInteger()\r
         {\r
-            if (radioFloat.Checked)\r
-            {\r
-                if (length == 4)\r
-                {\r
-                    int value = BitConverter.ToInt32(GetBytes(), 0);\r
-                    if (value == 0)\r
-                    {\r
-                        value = 1 << 31;\r
-                    }\r
-                    else\r
-                    {\r
-                        value -= value >= 0 ? 1 : -1;\r
-                    }\r
-                    UpdateAll(BitConverter.GetBytes(value));\r
-                }\r
-                else\r
-                {\r
-                    long value = BitConverter.ToInt64(GetBytes(), 0);\r
-                    if (value == 0)\r
-                    {\r
-                        value = 1L << 63;\r
-                    }\r
-                    else\r
-                    {\r
-                        value -= value >= 0 ? 1 : -1;\r
-                    }\r
-                    UpdateAll(BitConverter.GetBytes(value));\r
-                }\r
-            }\r
-            else\r
+            for (int i = 0; i < 64; ++i)\r
             {\r
-                ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
-                UpdateAll(BitConverter.GetBytes(--value));\r
+                bits[i].IsExponential = false;\r
             }\r
+            textValue.ValidatingType = typeof(long);\r
         }\r
 \r
-        private void buttonClr_Click(object sender, EventArgs e)\r
+        private byte[] GetBytes()\r
         {\r
-            UpdateAll(BitConverter.GetBytes((ulong)0));\r
+            byte[] b = new Byte[8];\r
+            int i = 0;\r
+            for (int j = 0; j < 8; ++j)\r
+            {\r
+                b[j] = 0;\r
+                i += 8;\r
+                for (int k = 0; k < 8; ++k)\r
+                {\r
+                    b[j] = (byte)(b[j] << 1 | (bits[--i].State ? 1 : 0));\r
+                }\r
+                i += 8;\r
+            }\r
+            return b;\r
         }\r
 \r
-        private void buttonNot_Click(object sender, EventArgs e)\r
+        private long ToInt64(byte[] bytes)\r
         {\r
-            ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
-            UpdateAll(BitConverter.GetBytes(~value));\r
+            switch (length)\r
+            {\r
+                case 1:\r
+                    return (sbyte)bytes[0];\r
+                case 2:\r
+                    return BitConverter.ToInt16(bytes, 0);\r
+                case 4:\r
+                    return BitConverter.ToInt32(bytes, 0);\r
+                case 8:\r
+                    return BitConverter.ToInt64(bytes, 0);\r
+            }\r
+            return 0;\r
         }\r
 \r
-        private void buttonLsh_Click(object sender, EventArgs e)\r
+        private ulong ToUInt64(byte[] bytes)\r
         {\r
-            ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
-            UpdateAll(BitConverter.GetBytes(value << 1));\r
+            switch (length)\r
+            {\r
+                case 1:\r
+                    return bytes[0];\r
+                case 2:\r
+                    return BitConverter.ToUInt16(bytes, 0);\r
+                case 4:\r
+                    return BitConverter.ToUInt32(bytes, 0);\r
+                case 8:\r
+                    return BitConverter.ToUInt64(bytes, 0);\r
+            }\r
+            return 0;\r
         }\r
 \r
-        private void buttonRsh_Click(object sender, EventArgs e)\r
+        private void SetLength(int length)\r
         {\r
-            if (radioInt.Checked)\r
+            this.length = length;\r
+            int b = length * 8;\r
+            for (int i = 8; i < b; ++i)\r
             {\r
-                long value = ToInt64(GetBytes());\r
-                UpdateAll(BitConverter.GetBytes(value >> 1));\r
+                bits[i].Enabled = true;\r
+            }\r
+            for (int i = b; i < 64; ++i)\r
+            {\r
+                bits[i].Enabled = false;\r
+            }\r
+            if (radioFloat.Checked)\r
+            {\r
+                textValue_TextChanged(null, null);\r
             }\r
             else\r
             {\r
-                ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
-                UpdateAll(BitConverter.GetBytes(value >> 1));\r
+                BitChanged(null, null);\r
             }\r
         }\r
 \r
-        private void textValue_Leave(object sender, EventArgs e)\r
+        private void UpdateValue(byte[] bytes)\r
         {\r
-            UpdateValue(GetBytes());\r
+            if (radioUint.Checked)\r
+            {\r
+                textValue.Text = ToUInt64(bytes).ToString();\r
+            }\r
+            else if (radioInt.Checked)\r
+            {\r
+                textValue.Text = ToInt64(bytes).ToString();\r
+            }\r
+            else if (radioFloat.Checked)\r
+            {\r
+                if (length == 4)\r
+                {\r
+                    float value = BitConverter.ToSingle(bytes, 0);\r
+                    textValue.Text = value.ToString("g8");\r
+                }\r
+                else\r
+                {\r
+                    double value = BitConverter.ToDouble(bytes, 0);\r
+                    textValue.Text = value.ToString("g17");\r
+                }\r
+            }\r
         }\r
 \r
-        private void textHex_Leave(object sender, EventArgs e)\r
+        private void UpdateHex(byte[] bytes)\r
         {\r
-            UpdateHex(GetBytes());\r
+            textHex.Text = "";\r
+            for (int i = length - 1; i >= 0; --i)\r
+            {\r
+                textHex.Text += bytes[i].ToString("X2");\r
+            }\r
         }\r
 \r
-        private void MainForm_KeyDown(object sender, KeyEventArgs e)\r
+        private void UpdateBits(byte[] bytes)\r
         {\r
-            if (e.Alt)\r
+            int i = 0;\r
+            for (int j = 0; j < length; ++j)\r
             {\r
-                switch (e.KeyCode)\r
-                { \r
-                    case Keys.V:\r
-                        textValue.Focus();\r
-                        break;\r
-                    case Keys.H:\r
-                        textHex.Focus();\r
-                        break;\r
-                    default:\r
-                        return;\r
+                int mask = 1;\r
+                for (int k = 0; k < 8; ++k)\r
+                {\r
+                    bits[i++].SetStateWithoutEvent((bytes[j] & mask) != 0);\r
+                    mask <<= 1;\r
                 }\r
-                e.SuppressKeyPress = true;\r
             }\r
         }\r
+\r
+        private void UpdateAll(byte[] bytes)\r
+        {\r
+            UpdateBits(bytes);\r
+            UpdateValue(bytes);\r
+            UpdateHex(bytes);\r
+        }\r
+\r
+        #endregion\r
     }\r
 }\r
index f84d725..c24d5d0 100755 (executable)
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を \r
 // 既定値にすることができます:\r
 // [assembly: AssemblyVersion("1.0.*")]\r
-[assembly: AssemblyVersion("0.0.0.0")]\r
-[assembly: AssemblyFileVersion("0.0.0.0")]\r
+[assembly: AssemblyVersion("0.0.0.1")]\r
+[assembly: AssemblyFileVersion("0.0.0.1")]\r