1、基礎格式化
(1)把int i 轉化爲 十六進制然後轉化爲字符型。添加到下拉框中
for (int i = 0; i < 256; i++)
{
string Xnum = i.ToString("x").ToUpper();
// 把i轉化爲16進制,然後轉化爲字符
// 爲了實現對齊,把一位的十六進制數,前加0
if (Xnum.Length == 1)
Xnum = "0" + Xnum;
// 十六進制數前統一加上0x.
Xnum = "0x" + Xnum;
//Console.WriteLine(Xnum);
comboBox1.Items.Add(Xnum); // 添加到下拉框中。
}
(2)格式化控制輸出 string.Format()
string.Format("frameType: {0,-10}", g_ImageData.frameType.ToString()) 字符串按照佔 10位,不夠10位後面的用空格補齊,輸出,靠左對齊
(3) 強制轉化問題 Convert.ToInt32() 強制轉化爲Int32 類型。
int EPPL1_H = Convert.ToInt32(textBox_EPPl1_HDRLAY.Text); // 從文本框中的獲取內容,強制轉化爲Int32,若轉化不成功,就返回0。
(4)int.Parse(string);
int.Parse(string 變量名)
該方式是將數字內容的字符串轉換爲int類型
1.如果字符串的內容爲Null ,則拋出ArgumentNullException異常;
2.如果字符串內容不是數字,則拋出FormatException異常;
3.使用該方法只能處理字符串的內容,而且轉換後的字符串內容要在int類型的可表示範圍之內,若超出,則拋出OverflowException異常。
2、點擊按鈕後,執行簡單串口的方法
private void button1_Click(object sender, EventArgs e)
{
string Data = comboBox1.Text; // 獲取下拉框的內容
String Snum = Data.Substring(2, 2);
byte[] buffer = new byte[1];
buffer[0] = Convert.ToByte(Snum, 16); // 聲明當前字符串爲16進制,把字符串強制轉化爲byte類型。
try // 防止出錯
{
serialPort1.Open(); // 串口的一些使用方法
serialPort1.Write(buffer, 0, 1);
serialPort1.Close();
}
catch // 出錯了就只執行下面代碼
{
if(serialPort1.IsOpen)
serialPort1.Close();
MessageBox.Show("端口錯誤","端口"); // 蹦出一個提示框
}
}
3、listView 控件 列表控件
請看
this.listViewSelectRobot.CheckBoxes = false; //設置控件中各項的旁邊是否顯示覆選框
this.listViewSelectRobot.Columns.Add("serial", 55, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("robotID", 60, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("abn_total", 60, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("abn_Index", 60, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("abn_type", 90, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("abn_cnt", 60, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("coordinate_x", 90, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("coordinate_y", 90, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("orient", 60, HorizontalAlignment.Left);
this.listViewSelectRobot.Columns.Add("robotTime", 120, HorizontalAlignment.Left);
// 確定控件有幾列,第一列標題爲"serial",屬性爲 寬度爲55,對齊方式爲HorizontalAlignment.Left向左對齊
this.listViewSelectRobot.View = System.Windows.Forms.View.Details;
// 設置View屬性 如果不寫這句,那麼加的列壓根顯示不出來。必須寫tRobot.GridLines = true;
this.listViewSelectRobot.LabelEdit = true;
// 允許用戶編輯書籤
this.listViewSelectRobot.AllowColumnReorder = true;
// 是否拖動列表頭來改變列的順序
this.listViewSelectRobot.Sorting = SortOrder.Ascending;
// 對列表視圖的項進行排序 Ascending遞增排序 Descending 遞減排序 None項未排序。
for (int i = 0; i < cMaxSumPlace; i++) // cMaxSumPlace 5000 表示5000行
{
this.listViewSelectRobot.Items.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
this.listViewSelectRobot.Items[i].SubItems.Add("");
}
/*
* this.listView1.Items.Add("A1");
這是指給這個控件表添加一個新的行,同時把新行的第一列數據設爲A1,此時這個新行內的元素集合就是this.listView1.Item[0]
this.listView1.Items[0].SubItems.Add("A2");
這是給剛添加的第一行,也就是this.listView1.Item[0]添加第二列數據A2.如果說Items在行的層次增加,Item[i].SubItems才真正對應單元格操作。
this.listView1.Items[0].SubItems.Add("A3");
* 新加一行的信息 A1 -- A2 --A3
*/
this.listViewDispPose.CheckBoxes = false;
this.listViewDispPose.Columns.Add("serial", 60, HorizontalAlignment.Left);
this.listViewDispPose.Columns.Add("coordinate_x", 80, HorizontalAlignment.Left);
this.listViewDispPose.Columns.Add("coordinate_y", 98, HorizontalAlignment.Left);
this.listViewDispPose.Columns.Add("totalCnt", 60, HorizontalAlignment.Left);
this.listViewDispPose.View = System.Windows.Forms.View.Details;
this.listViewDispPose.FullRowSelect = true; // 選中一行
this.listViewDispPose.GridLines = true; // 顯示網格
this.listViewDispPose.LabelEdit = true;
this.listViewDispPose.AllowColumnReorder = true; // 是否拖動列表頭來改變列的順序
this.listViewDispPose.Sorting = SortOrder.Ascending; // 排序
4、常用的窗體
RxDataDispose_Serial 串口
textBoxworkMode 工作模式文本框
button 按鈕,label 標籤字體 comboBox1下拉框 progressBar1 進度條 MessageBox.Show(“時間到了“,”提示”); 彈出提示框 “提示”是標題,“時間到了”是內容
timer1 是定時器。
用Panel容器控件把 RadioButton(單選框控件) 框住,就是說明在框中的單選框就是一類的。
Textbox1 文本框 可以設置橫向滑動條或豎向滑動條。
複選框 (CheckBox) 多選框,
ovalShape 畫圓 ovalShape.FillColor
Button.Enable = false; 表示當前按鈕按下,不能在按。
time.Interval = 1000; 時間間隔爲1s;
5、form窗體一些常用屬性
(1)讓窗體居中顯示
(2)
6、 using (FileStream fileStream = File.OpenWrite(filePath)) ,c#中爲什麼要用using呢?
using的意思是變量在出了using作用域後將自動調用它的Dispose方法,也就是釋放資源,一般來說,文件流都要主動釋放資源的,因爲讀寫文件是會加鎖的,不釋放的話,別的程序就無法使用文件了
也可以不用using,在用完後顯式的調用下fs.Dispose()就好了,另外using的對象必須是實現IDisposable接口的
一、兩種運用方式:
1.引入命名空間的類庫方法,或者命名空間別名;
允許在命名空間中使用類型,這樣就不必在該命名空間中限定某個類型的使用: 複製代碼 using System.Text;
爲命名空間或類型創建別名。這稱爲“using 別名指令”。 複製代碼 using Project = PC.MyCompany.Project;
2.資源釋放的作用範圍:跳出using作用的範圍後就會被釋放。
如果一個類實現了接口IDisposable(這個接口只有一個方法void Dispose()),當這個類在using中創建的時候,using代碼塊結束時會自動調用這個類中實現了接口IDisposable的Dispose()方法;
using有兩個主要用途:作爲指令,用於爲命名空間創建別名或導入其他命名空間中定義的類型。作爲語句,用於定義一個範圍,在此範圍的末尾將釋放對象。
7、listBox 控件 列表框
(1) 設置橫向水平條 這個屬性選擇true
(2)
8 label 控件
(1)確認可見邊框
(2)若想改變label控件大小 必須要把AutoSize屬性改爲false
(3)name 就是 label 控件的名字 text 爲 label控件要顯示的內容
(4)
9 tabControl 選項卡
(1) MaxMode = tabControl.SelectedIndex; 獲取選擇項的下標。
(2)
10 comboBox 下拉框
(1) workModeSet = comboBox.SelectedIndex; 獲取當前下拉框的下標 若0,1,2.. 第0項...。
(2)comboBox.Items.Add("意外移動"); 下拉框中添加 ''意外移動" 這一項。
11 textbox 文本框
(1)把Multiline(多行),把多行屬性選擇爲true 就可以豎向拉伸了
(2)