1、 COMBOX 只能通过下拉列表选择数据
this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;// 只能通过下来列表来选择数据
this.comboBox1.DropDownStyle = ComboBoxStyle.DropDown;//可以通过下拉列表选择和输入框输入数据
this.comboBox1.DropDownStyle = ComboBoxStyle.Simple;//只能通过输入框输入数据
2、COMBOX 默认选择某一项
this.Serial_Rate.SelectedIndex = 6;// 在InitializeComponent中调用
3、USB 串口热插拔识别(使用Windows 消息管理机制,通过Windows在识别到设备插入或者拔出后,会给每个应用程序发送一个设备插入或者设备移除的消息,通过这个消息,来分辨设备的插入或拔出)
//[StructLayout(LayoutKind.Sequential)]
//struct DEV_BROADCAST_HDR
//{
// public UInt32 dbch_size;
// public UInt32 dbch_devicetype;
// public UInt32 dbch_reserved;
//}
[StructLayout(LayoutKind.Sequential)]
//protected struct DEV_BROADCAST_PORT_Fixed
//{
// public uint dbcp_size;
// public uint dbcp_devicetype;
// public uint dbcp_reserved;
//}
public const int WM_DEVICE_CHANGE = 0x219;
public const int DBT_DEVICEARRIVAL = 0x8000;
public const int DBT_DEVICE_REMOVE_COMPLETE = 0x8004;
public const UInt32 DBT_DEVTYP_PORT = 0x00000003;
/// 检测USB串口的拔插
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DEVICE_CHANGE) // 捕获USB设备的拔出消息WM_DEVICECHANGE
{
switch (m.WParam.ToInt32())
{
case DBT_DEVICE_REMOVE_COMPLETE: // USB拔出
case DBT_DEVICEARRIVAL: // USB插入获取对应串口名称
Serial_Status();//如果串口关闭,更新串口状态
Init_COM_Port_List();//直接读取串口列表
break;
case WM_DEVICE_CHANGE:
break;
}
}
base.WndProc(ref m);
}
4、 TextBox 写入数据后滚动条滚到最后一行
private void Serial_RecvText_TextChanged(object sender, EventArgs e)
{
Test_ReceiveView.SelectionStart = Test_ReceiveView.Text.Length;
Test_ReceiveView.ScrollToCaret();
}