How do I automatically scroll to the bottom of a multiline text box?

At regular intervals, I am adding new lines of text to it. I would like the textbox to automatically scroll to the bottom-most entry (the newest one) whenever a new line is added. If you use TextBox.AppendText(string text), it will automatically scroll to the end of the newly appended text. It avoids the flickering scrollbar … Read more

How to remove all event handlers from an event

I found a solution on the MSDN forums. The sample code below will remove all Click events from button1. public partial class Form1 : Form { public Form1() { InitializeComponent(); button1.Click += button1_Click; button1.Click += button1_Click2; button2.Click += button2_Click; } private void button1_Click(object sender, EventArgs e) => MessageBox.Show(“Hello”); private void button1_Click2(object sender, EventArgs e) => … Read more

How do I use OpenFileDialog to select a folder?

Basically you need the FolderBrowserDialog class: Prompts the user to select a folder. This class cannot be inherited. Example: using(var fbd = new FolderBrowserDialog()) { DialogResult result = fbd.ShowDialog(); if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath)) { string[] files = Directory.GetFiles(fbd.SelectedPath); System.Windows.Forms.MessageBox.Show(“Files found: ” + files.Length.ToString(), “Message”); } } If you work in WPF you have … Read more

Replacing .NET WebBrowser control with a better browser, like Chrome? [closed]

Checkout CefSharp .Net bindings, a project I started a while back that thankfully got picked up by the community and turned into something wonderful. The project wraps the Chromium Embedded Framework and has been used in a number of major projects including Rdio’s Windows client, Facebook Messenger for Windows and Github for Windows. It features … Read more

How can I save application settings in a Windows Forms application?

If you work with Visual Studio then it is pretty easy to get persistable settings. Right click on the project in Solution Explorer and choose Properties. Select the Settings tab and click on the hyperlink if settings doesn’t exist. Use the Settings tab to create application settings. Visual Studio creates the files Settings.settings and Settings.Designer.settings … Read more

Cross-thread operation not valid: Control accessed from a thread other than the thread it was created on

As per Prerak K’s update comment (since deleted): I guess I have not presented the question properly. Situation is this: I want to load data into a global variable based on the value of a control. I don’t want to change the value of a control from the child thread. I’m not going to do … Read more

Implementing INotifyPropertyChanged – does a better way exist?

Without using something like postsharp, the minimal version I use uses something like: public class Data : INotifyPropertyChanged { // boiler-plate public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } protected bool SetField<T>(ref T field, T value, string propertyName) { if (EqualityComparer<T>.Default.Equals(field, … Read more