C# 学习之 控件学习使用

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);
    }
4TextBox 写入数据后滚动条滚到最后一行
   private void Serial_RecvText_TextChanged(object sender, EventArgs e)
   {
       Test_ReceiveView.SelectionStart = Test_ReceiveView.Text.Length;
       Test_ReceiveView.ScrollToCaret();
   }

你可能感兴趣的:(上位机学习)