15,868,340 members
Sign in
Sign in
Email
Password
Forgot your password?
Sign in with
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Javascript questions
View Visual Basic questions
View Python questions
discussions
forums
CodeProject.AI Server
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
Python
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
features
Competitions
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Search within:
Articles
Quick Answers
Messages
Tag Cloud
.NET
.NET2.0
.NET3.0
.NET3.5
.NET4
.NET4.5
.NET4.6
.NET-Core
2D
3D
64-bit
active-directory
ActiveX
AddIn
ADO
ADO.NET
Advanced
Ajax
Ajax-toolkit
algorithm
All-Topics
Amazon
Android
Android4x
Angular5
Angular6
Angular7
angular-cli
AngularJs
animation
Apache
API
application
Architect
architecture
Arduino
artificial-intelligence
ASM
ASP
ASP.NET
ASP.NET2
ASP.NET4
ASP.NET5
ASP.NET-Core
assembler
Async
asynchronous
audio
authentication
automation
AWS
Azure
BackgroundWorker
barcode
Bash
Basic
batch
Beginner
binary
Binding
Bitmap
biztalk
Blazor
Bluetooth
bootstrap
browser
BUILD
buttons
bytes
C
C#
C#2.0
C#3.0
C#3.5
C#4.0
C#5.0
C#6.0
C#7.0
C#7.1
C++
C++/CLI
C++11
C++14
C++17
C++98
cache
camera
Canvas
CEO
chart
Chat
checkbox
chrome
client-server
client-side
cloud
CLR
cmd
code-challenge
CodeIgniter
CodeProject
coding-challenge
collections
color
COM
combobox
command-line
compiler
connection
connectionstring
console
constructor
controller
controls
conversion
convert
cookie
Cordova
cryptography
CrystalReports
CSS
CSS3
CSV
cURL
custom-controls
Dart
data
database
data-binding
DataGrid
DataGridView
dataset
DataTable
DateTime
DBA
debugging
deep-learning
delegates
Delphi
deployment
deserialization
Design
desktop
Dev
DevExpress
DevOps
dictionary
DirectX
Django
DLL
docker
drawing
driver
DropDownList
Eclipse
Edison
EF5.0
EF6.0
EF-Core
email
embedded
Emgu-CV
encoding
encryption
enterprise
entity-framework
error-handling
errors
ES6
event
event-handler
Excel-2016
exceptions
export
extension
Facebook-API
ffmpeg
file
FileIO
FileStream
File-Upload
fingerprint
Firefox
Flash
flask
Flutter
form
formatting
forms
FTP
game
GCC
GDI
GDI+
general
generics
Git
GitHub
Gmail
Google
google-api
Google-Maps
GPS
graph
graphics
grid
Gridview
GUI
hardware
hash
HTML
HTML5
HTTP
IE11
IFrame
IIS
IIS7
IIS7.5
IIS8
image
image-processing
inheritance
installer
Intermediate
Internet
interop
iOS
IoT
iPhone
itextsharp
Java
Java8
Javascript
JavaSE
JavaSE6
JQGrid
jQuery
jQuery-UI
JScript.NET
JSON
JSON.NET
JSP
Kendo
kernel
Knockout.js
Kotlin
lambda
licensing
LINQ
Linux
ListBox
ListView
logging
machine-learning
macOS
macros
mail
manager
mapping
Markdown
mathematics
MatLab
Matrix
memory
menu
MFC
microcontroller
Microsoft
Mobile
model
MongoDB
Mono
MS-Access
MS-Excel
MS-Word
multi-threading
MVC
MVC3
MVC4
MVC5
MVC6
MVVM
MySQL
MySQL-Connector
netbeans
network
networking
neural-network
Node.js
NuGet
null
numbers
Objective-C
Office
OleDb
OOP
OpenCL
OpenCV
OpenGL
OpenXML
optimization
Oracle
Outlook
parallel
Parameter
parsing
Pascal
password
path
patterns
PayPal
PDF
performance
Perl
phone
PhoneGap
PHP
picturebox
plugin
PostgreSQL
PowerShell
print
printing
process
product-showcase
programming
Python
Python2.7
Python3.3
Python3.6
QA
QT
QT-Creator
R
random
Raspberry-Pi
Razor
RDLC
React
ReactJS
read
recursion
reference
reflection
registry
regular-expression
remote
repeater
reporting
reporting-services
report-viewer
REST
RichTextBox
Ruby
script
scripting
SDK
search
security
selenium
serial
serialization
serial-port
server
service
servlet
session
setup
SharePoint
SharePoint2010
SharePoint2013
shell
SignalR
Silverlight
SMS
SMTP
SOAP
sockets
sorting
speech
Spring
SQL
SqlDataSource
SQLite
SQL-Server
SQL-Server-2005
SQL-Server-2008
SQL-Server-2008R2
SQL-Server-2012
SQL-Server-2014
SQL-Server-2016
SSIS
SSL
SSMS
SSRS
SSRS-2008
STL
stored-procedure
stream
streaming
string
struct
structures
SVG
Swift
Swing
syntax
SysAdmin
system
table
Task
TCP/IP
TcpClient
Telerik
templates
tensorflow
testing
text
TextBoxBase
TFS
threads
time
timer
trees
treeview
trigger
T-SQL
Typescript
Ubuntu
UDP
UI
Unicode
unit-testing
Unity
Unity3D
upload
USB
user-controls
UWP
validation
VB
VB10
VB11
VB12
VB14
VB15
VB6
VBA
VBScript
VC++
vector
video
VisualC++
Visual-Studio
VS2008
VS2010
VS2012
VS2013
VS2015
VS2017
VS2019
VSTO
WCF
WCFServices
web
web.config
web_application
web_browser
web_development
WebAPI
WebAPI2
WebBrowserControl
WebForms
web-hosting
WebMethod
webservice
website
WebSockets
Win10
Win32
Win64
Win7
Win8
WinAPI
Windows
Windows-Phone-7
Windows-Phone-8
WinForms
WinMobile
WinRT
WMI
WordPress
WPF
Xamarin
XAML
XAMPP
Xcode
XML
XmlSerializer
XSLT
Edit Tags