獲取方式在文章末尾
效果圖如下:
private void Form1_Load(object sender, EventArgs e) { comboBox1.Items.Add("二進位制"); //在comboBox1下拉選單增加二進位制選項 comboBox1.Items.Add("八進位制"); //在comboBox1下拉選單增加八進位制選項 comboBox1.Items.Add("十進位制"); //在comboBox1下拉選單增加十進位制選項 comboBox1.Items.Add("十六進位制");//在comboBox1下拉選單增加十六進位制選項 comboBox1.SelectedIndex = 0; }
int a; //宣告一個名為a的int型變數 long c; String b;//宣告一個名為b的String型變數 private void button2_Click(object sender, EventArgs e) //button2_Click點選事件時進行轉換 { b = textBox1.Text; //把textBox1.Text的內容賦值給變數b if (b != "") //判斷textBox1.Text資料不為空時執行轉換 { if (comboBox1.Text == "二進位制")//comboBox1.Text選擇框為二進位制時的轉換過程 { { c = Convert.ToInt64(textBox1.Text, 2); if (c > -2147483649 && c < 2147483648) { a = Convert.ToInt32(textBox1.Text, 2); textBox2.Text = Convert.ToString(a, 10); textBox3.Text = Convert.ToString(a, 2); textBox4.Text = Convert.ToString(a, 8); textBox5.Text = Convert.ToString(a, 16); } else //textBox1.Text資料為空時彈出提示視窗 { MessageBox.Show("資料來源超出二進位制範圍\n輸入範圍\n10000000000000000000000000000000\n至\n1111111111111111111111111111111", "錯誤提示"); } } } if (comboBox1.Text == "八進位制")//comboBox1.Text選擇框為八進位制時的轉換過程 { c = Convert.ToInt64(textBox1.Text, 8); if (c > -2147483649 && c < 2147483648) { a = Convert.ToInt32(textBox1.Text, 8); textBox2.Text = Convert.ToString(a, 10); textBox3.Text = Convert.ToString(a, 2); textBox4.Text = Convert.ToString(a, 8); textBox5.Text = Convert.ToString(a, 16); } else //textBox1.Text資料為空時彈出提示視窗 { MessageBox.Show("資料來源超出轉換範圍\n輸入範圍\n200000000000\n至\n17777777777", "錯誤提示"); } } if (comboBox1.Text == "十進位制")//comboBox1.Text選擇框為十進位制時的轉換過程 { c = Convert.ToInt64(textBox1.Text, 10); if (c > -2147483649 && c < 2147483648) { a = Convert.ToInt32(textBox1.Text, 10); textBox2.Text = Convert.ToString(a, 10); textBox3.Text = Convert.ToString(a, 2); textBox4.Text = Convert.ToString(a, 8); textBox5.Text = Convert.ToString(a, 16); } else //textBox1.Text資料為空時彈出提示視窗 { MessageBox.Show("資料來源超出轉換範圍\n輸入範圍\n-2147483648\n至\n2147483647", "錯誤提示"); } } if (comboBox1.Text == "十六進位制")//comboBox1.Text選擇框為十六進位制時的轉換過程 { c = Convert.ToInt64(textBox1.Text, 16); if (c > -2147483649 && c < 2147483648) { a = Convert.ToInt32(textBox1.Text, 16); textBox2.Text = Convert.ToString(a, 10); textBox3.Text = Convert.ToString(a, 2); textBox4.Text = Convert.ToString(a, 8); textBox5.Text = Convert.ToString(a, 16); } else //textBox1.Text資料為空時彈出提示視窗 { MessageBox.Show("資料來源超出轉換範圍\n輸入範圍\n80000000\n至\n7fffffff", "錯誤提示"); } } } else if (b != ""&& comboBox1.Text == "") MessageBox.Show("未選擇資料來源的進位制型別", "錯誤提示"); else //textBox1.Text資料為空時彈出提示視窗 { MessageBox.Show("資料來源不能為空", "錯誤提示"); } }
private void button1_Click(object sender, EventArgs e) { Application.Exit(); } private void button3_Click(object sender, EventArgs e)//單擊button3事件時清空所有資料 { textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; }
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)// textBox1的輸入鍵值事件 { //IsNumber的作用是判斷輸入按鍵是否為數字 //(Char)8是退格鍵的鍵值,可允許使用者敲打退格鍵對輸入數字進行修改 //if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (Char)8) //{ //e.Handled = true;//經過判斷為數字,可以輸入 //} if (comboBox1.Text == "二進位制") { if (e.KeyChar != (Char)8) { e.Handled = "01".IndexOf(char.ToUpper(e.KeyChar)) < 0;// textBox1的只接收01F鍵的輸入 } } if (comboBox1.Text == "八進位制") { if (e.KeyChar != (Char)8) { e.Handled = "01234567".IndexOf(char.ToUpper(e.KeyChar)) < 0;// textBox1的只接收01234567鍵的輸入 } } if (comboBox1.Text == "十進位制") { if (e.KeyChar != (Char)8) { e.Handled = "-0123456789".IndexOf(char.ToUpper(e.KeyChar)) < 0;// textBox1的只接收0123456789鍵的輸入 } } if (comboBox1.Text == "十六進位制") { if (e.KeyChar != (Char)8) { e.Handled = "0123456789ABCDEF".IndexOf(char.ToUpper(e.KeyChar)) < 0;// textBox1的只接收0123456789ABCDEF鍵的輸入 } } }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)//comboBox1.Text選擇框選擇事件 { textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; if (comboBox1.Text == "二進位制")//comboBox1.Text選擇框為二進位制是限制字元輸入數為31個 textBox1.MaxLength = 32; else if (comboBox1.Text == "八進位制")//comboBox1.Text選擇框為八進位制是限制字元輸入數為10個 textBox1.MaxLength = 10; else if (comboBox1.Text == "十進位制")//comboBox1.Text選擇框為十進位制是限制字元輸入數為10個 textBox1.MaxLength = 11; else if (comboBox1.Text == "十六進位制")//comboBox1.Text選擇框為十六進位制是限制字元輸入數為7個 textBox1.MaxLength = 8; }
每一個按鈕都會觸發一個事件獲取方式:轉發+關注私信:“進位制轉換”