How can I programmatically prevent the combobox from dropping

You can avoid the combobox dropping by overriding its WndProc method and ignoring the WM_LBUTTONDOWN and WM_LBUTTONDBLCLK. [C#] public class MyComboBox : ComboBox { protected override void WndProc(ref System.Windows.Forms.Message m) { if(m.Msg == 0x201 //WM_LBUTTONDOWN || m.Msg == 0x203) //WM_LBUTTONDBLCLK return; base.WndProc(ref m); } } [VB.NET] Public Class MyComboBox Inherits ComboBox Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) If m.Msg = &H201 OrElse m.Msg = &H203 Then ’WM_LBUTTONDOWN or WM_LBUTTONDBLCLK Return End If MyBase.WndProc(m) End Sub ’WndProc End Class ’MyComboBox

How do I disable pasting into a TextBox (via Ctrl + V and the context menu)?

First set the ContextMenu property of the TextBox to a dummy, empty ContextMenu instance. This will prevent the default context menu from showing. Then, override the ProcessCmdKey method as follows in a TextBox derived class: // In C# protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if(keyData == (Keys.Control | Keys.V)) return true; else return base.ProcessCmdKey(ref msg, keyData); } ’ In VB.Net Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean If keyData =(Keys.Control | Keys.V) Then Return True Else Return MyBase.ProcessCmdKey( msg, keyData) End If End Function

Why do the order of the tabs keep changing when opening and closing the Form?

This seems to be a known issue with the TabControl designer. The designer seems to automatically reorder the tabs while serializing changes made in the designer. To work around this issue, in your constructor, after the call to InitializeComponent, you could remove all the tab pages and add them back in the desired order.