Introduction to .NET Framework, C# (C Sharp) and Windows Forms

| | | | |

Microsoft .NET Framework

Microsoft .NET Framework is technology for building and running .NET applications. It provides a standard library of classes and a run-time environment called Common Language Runtime (CLR).CLR is the foundation of the .NET Framework.

c# combobox set selected item by item's text

| |

C# Combobox defined with name my_combobox

private System.Windows.Forms.ComboBox my_combobox;
Define string variable with the text of the combobox item that has to be selected. For example, if the combobox items have text values "item_a" "item_b" "item_c" ... and the item which text is "item_b" has to be selected

C# - Get database connection string from Web.config file

| |

To get the database connection string from IIS Web.config file using C# code, include System.Configuration directive and then create a string variable to assign the connection string like this:

using System.Configuration;
string connStr = ConfigurationManager.ConnectionStrings["connectionString_Name"].ConnectionString;
If “ConfigurationManager” is not recognized you will need to add reference to: "System.Configuration".See: C# - How to add reference to project

C# Textbox - enter only positive numbers on KeyPress event in Windows form application

| |

To prevent users from entering incorrect data in Windows form application, set restriction to allow only specific characters to be entered in the text box.This example uses KeyPress event to monitor the users input and to apply the restriction required.To avoid code duplication in Windows multiform applications for example, a separate class file is created “CommonFunctions.cs”.
The function to allow only numbers in textbox control is named InputNumbers.
For each Windows form, create a single KeyPress event and call the InputNumbers function inside it.

C# How to draw shapes – Circle, Rectangle, Arc, Pie, Polygon, Bezier, Text

| |

In order to draw shapes in C# a start point and end point coordinates, and a Pen control must be defined first.
Coordinates in C#The value of x is the location of the point along the x-axis, the 0 is at the extreme left. The value of y is the location of the point along the y-axis, the 0 is at the extreme top.

C# Custom control – TextBox accepting only numbers, decimal numbers, signed numbers

| |

The creation of custom control using Visual Studio involves the following steps:

  1. Start Visual Studio;
  2. Create new “Windows Control Library” project;
  3. In the created project delete “User Control” file;
  4. Go to “Project” > “Add User Control” and give it a name;
  5. Change the inherited class to this that you want your control to be;
  6. Create you custom properties for the control;
  7. Compile the project: Go to “Build” > “Build Solution”;

Handling CheckedListBox ItemCheck event in C#

|

Common problem handling ItemCheck event in CheckedListBox control is the fact that when the event is fired the object's state change is not finalized.If within the ItemCheck event handling function we try to get the CheckedListBox item's check state using the most common methods like getting collection of all checked items

foreach (object obj in checkedListBox1.CheckedItems) { // some code here ... }
only the previously checked items will be included in the collection.

C# How to Modify DataSet Connection Strings at Runtime?

|

Detailed instructions by Paul Keister in his excellent article Adaptive Connection Strings for Windows Forms Applications
In brief
the connection string property is set read only in the Settings.Designer.cs class:

public string MyAppConnectionString {
   get {
            return ((string)(this["MyAppConnectionString"]));
         }
}
However, all application settings are accessible in read/write mode by using the indexer directly.  The following code demonstrates how to modify the connection string using this approach:
//change the application connection string
Properties.Settings.Default["MyAppConnectionString"] = strCnString;

//debug:verify that this really did work
Console.WriteLine(Properties.Settings
                

Create application log file in C# / Write to File example

|

Application log file example

private string logFile = "full path and file name (C:\\temp\\MyApplicationLog.txt)";
...
WriteToLogFile("your application message", logFile); // use any time to add record to the log file
...
public void WriteToLogFile(string strMessage, string outputFile)
{
   string line = DateTime.Now.ToString() + " | ";
   line += strMessage;
   FileStream fs = new FileStream(outputFile, FileMode.Append, FileAccess.Write, FileShare.None);
   StreamWriter swFromFileStream = new StreamWriter(fs);
   swFromFileStream.WriteLine(line);
   swFromFileStream.Flush();
   swFromFileStream.Close();
}


C# Is the Logged User a member of specific Windows Domain Group?

|

C sharp code

using System.DirectoryServices.AccountManagement;
string userName = SystemInformation.UserName;
string UDN = SystemInformation.UserDomainName;
string domainUser = UDN + "\\" + userName;
PrincipalContext pc = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, domainUser);
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "Domain_Group_Name");
bool is_member = user.IsMemberOf(group);

DataGridView add row - C#

|

Considering DataGridView with 3 text columns defined.

string[] row = new string[] { "column1_content", "column2_content", "column3_content" };
DataGridView1.Rows.Add(row);

DataGridView copy to clipboard

|

To copy the content of DataGridView cells to clipboard using MouseClick function                                                       

private void DataGridView1_MouseClick(object sender, MouseEventArgs e)
{
   DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
   DataGridView1.SelectAll();
   Clipboard.SetDataObject(DataGridView1.GetClipboardContent());
}

Windows application (process) start from C# code

|

Run notepad application example

using System.Diagnostics; // REQUIRED
private string programStartupDir = "";
private string logFile = "";
...
private void Form1_Load(object sender, EventArgs e)
{
   programStartupDir = Directory.GetCurrentDirectory();
   programStartupDir += "\\";
   logFile = programStartupDir + "Application_Log.txt";
}
...
private void menuItemShowLogFile_Click(object sender, EventArgs e)
{
   Process showFile = new Process();
   showFile.StartInfo.FileName = "notepad.exe";
   showFile.StartInfo.Arguments = logFile;
   showFile.Start();
}