Элементы управления
Последнее обновление: 31.10.2015
Элементы управления представляют собой визуальные классы, которые получают введенные пользователем данные и могут инициировать различные события.
Все элементы управления наследуются от класса Control и поэтому имеют ряд общих свойств:
-
Anchor: Определяет, как элемент будет растягиваться
-
BackColor: Определяет фоновый цвет элемента
-
BackgroundImage: Определяет фоновое изображение элемента
-
ContextMenu: Контекстное меню, которое открывается при нажатии на элемент правой кнопкой мыши.
Задается с помощью элемента ContextMenu -
Cursor: Представляет, как будет отображаться курсор мыши при наведении на элемент
-
Dock: Задает расположение элемента на форме
-
Enabled: Определяет, будет ли доступен элемент для использования. Если это свойство имеет значение False,
то элемент блокируется. -
Font: Устанавливает шрифт текста для элемента
-
ForeColor: Определяет цвет шрифта
-
Location: Определяет координаты верхнего левого угла элемента управления
-
Name: Имя элемента управления
-
Size: Определяет размер элемента
-
Width: ширина элемента
-
Height: высота элемента
-
TabIndex: Определяет порядок обхода элемента по нажатию на клавишу Tab
-
Tag: Позволяет сохранять значение, ассоциированное с этим элементом управления
Кнопка
Наиболее часто используемым элементом управления является кнопка. Обрабатывая событие нажатия кнопки, мы может производить те или иные действия.
При нажатии на кнопку на форме в редакторе Visual Studio мы по умолчанию попадаем в код обработчика события Click
,
который будет выполняться при нажатии:
private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Hello World"); }
Оформление кнопки
Чтобы управлять внешним отображением кнопки, можно использовать свойство FlatStyle. Оно может принимать следующие значения:
-
Flat — Кнопка имеет плоский вид
-
Popup — Кнопка приобретает объемный вид при наведении на нее указателя, в иных случаях она имеет плоский вид
-
Standard — Кнопка имеет объемный вид (используется по умолчанию)
-
System — Вид кнопки зависит от операционной системы
Изображение на кнопке
Как и для многих элементов управления, для кнопки можно задавать изображение с помощью свойства BackgroundImage.
Однако мы можем также управлять размещением текста и изображения на кнопки.
Для этого надо использовать свойство TextImageRelation. Оно приобретает следующие значения:
-
Overlay: текст накладывается на изображение
-
ImageAboveText: изображение располагается над текстом
-
TextAboveImage: текст располагается над изображением
-
ImageBeforeText: изображение располагается перед текстом
-
TextBeforeImage: текст располагается перед изображением
Например, установим для кнопки изображение. Для этого выберем кнопку и в окне Свойств нажмем на поле Image (не путать с BackgroundImage). Нам откроется диалоговое окно
установи изображения:
В этом окне выберем опцию Local Resource
и нажмем на кнопку Import
, после чего нам откроется диалоговое окно для выбора файла изображения.
После выбора изображения мы можем установить свойство ImageAlign, которое управляет позиционированием изображения на кнопке:
Нам доступны 9 вариантов, с помощью которых мы можем прикрепить изображение к определенной стороне кнопки. Оставим здесь значение по умолчанию — MiddleCenter
,
то есть позиционирование по центру.
Затем перейдем к свойству TextImageRelation
и установим для него значение ImageBeforeText
. В итоге мы получим кнопку,
где сразу после изображения идет надпись на кнопке:
Клавиши быстрого доступа
При работе с формами при использовании клавиатуры очень удобно пользоваться клавишами быстрого доступа. При нажатии на клавиатуре комбинации
клавиш At+некоторый символ, будет вызываться определенная кнопка. Например, зададим для некоторой кнопки свойство Text равное &Аватар
.
Первый знак — амперсанд — определяет ту букву, которая будет подчеркнута. В данном случае надпись будет выглядеть как
Аватар. И теперь чтобы вызвать событие Click, нам достаточно нажать на комбинацию клавиш Alt+А.
Кнопки по умолчанию
Форма, на которой размещаются все элементы управления, имеет свойства, позволяющие назначать кнопку по умолчанию и кнопку отмены.
Так, свойство формы AcceptButton
позволяет назначать кнопку по умолчанию, которая будет срабатывать по нажатию на клавишу Enter.
Аналогично работает свойство формы CancelButton
, которое назначает кнопку отмены. Назначив такую кнопку, мы можем вызвать ее нажатие,
нажав на клавишу Esc.
Кнопка (Button)
Доброго времени суток! В этом уроке я коротко расскажу о таких элементах графического интерфейса, как кнопки. Кнопка (button), пожалуй самый распространенный элемент графического интерфейса. Так что, изучение элементов я начну именно с кнопок.
В C#, кнопки представлены элементом графического интерфейса Button. На панели элементов, этот компонент (контрол) находится в группе «Стандартные элементы управления» (или «Common Controls» в англоязычной версии Visual Studio), как показано на рисунке ниже.
Кнопка в панели элементов Visual Studio
Можете создать новый (или открыть существующий) проект приложения с графическим интерфейсом в Visual Studio и перетащить на главную форму кнопку. Чтобы проверять на практике, что я сейчас буду рассказывать. А начну я с основных свойство кнопки.
Основные свойства
Name — задает уникальное имя для кнопки (специфическое свойство, необходимо, для работы с кнопкой из кода).
Image — позволяет задать изображение для кнопки.
ImageAlign — позволяет задать выравнивание изображению на кнопке.
Enabled — разрешает или запрещает доступ к элементу, если указать значение true, то кнопка будет доступна для пользователя (он сможет нажимать на неё), значение false — наоборот, запрещает доступ.
MaximumSize — позволяет задать размер кнопке. Работает аналогично свойство MaximumSize у формы.
MinimumSize — позволяет задать размер кнопке. Работает аналогично свойство MinimumSize у формы.
Size — позволяет задать размер кнопке. Работает аналогично свойство Size у формы.
Text — позволяет задать надпись на кнопке.
TextAlign — позволяет задать выравнивание текста, например, по центу, или в левом верхнем углу кнопки.
Может иметь одно из значений, перечисленных в таблице ниже.
Значение | Краткое описание |
---|---|
TopLeft | Верхний левый угол |
TopCenter | Сверху и по центру |
TopRight | Правый верхний угол |
MiddleLeft | Посередине слева |
MiddleCenter | Посередине по центру |
MiddleRight | Посередине справа |
BottomLeft | Левый нижний угол |
BottomCenter | Снизу по центру |
BottomRight | Правый нижний угол |
Visible — позволят скрыть кнопку, если установлено в false. Для отображения кнопки снова, нужно установить этому свойству значение true.
Основные события
Click — возникает, при щелчке мышью на кнопке, либо при нажатии на клавишу Enter на клавиатуре.
MouseClick — возникает, при щелчке мышью (в обработчик события, передается дополнительная информация).
Основные методы
Hide — скрывает кнопку (делает её невидимой).
Show — показывает кнопку (делает её видимой).
А вот вам пример окна с тремя кнопками:
Пример окна с тремя кнопками
Перейти к следующему уроку
C# Button class in .NET Framework class library represents a Windows Forms Button control. A Button control is a child control placed on a Form and used to process click event and can be clicked by a mouse click or by pressing ENTER or ESC keys.
If AutoEllipsis property is true, it adds ellipsis character to a control if text in control does not fit. You may have to set AutoSize to false to see the ellipses character.
Image in Button
The Image property of a Button control is used to set a button background as an image. The Image property needs an Image object. The Image class has a static method called FromFile that takes an image file name with full path and creates an Image object.
You can also align image and text. The ImageAlign and TextAlign properties of Button are used for this purpose.
The following code snippet sets an image as a button background.
- dynamicButton.Image = Image.FromFile(@«C:\Images\Dock.jpg»);
- dynamicButton.ImageAlign = ContentAlignment.MiddleRight;
- dynamicButton.TextAlign = ContentAlignment.MiddleLeft;
- dynamicButton.FlatStyle = FlatStyle.Flat;
Text and Font
The Text property of Button represents the contents of a Button. The TextAlign property if used to align text within a Button that is of type ContentAlignment enumeration.
The Font property is used to set font of a Button.
The following code snippet sets Text and Font properties of a Button control.
- dynamicButton.Text = «I am Dynamic Button»;
- dynamicButton.TextAlign = ContentAlignment.MiddleLeft;
- dynamicButton.Font = new Font(«Georgia», 16);
Button Control States
Button control has five states — Normal, Flat, Inactive, Pushed, and All. ButtonState enumeration represents a button state.
Unfortunately, Windows Forms does not have a straight-forward way to set a button control state but there is a work around.
Windows Forms has a ControlPaint class with some static methods that can be used to draw various controls at runtime. The DrawButton method is used to draw a Button control and the last parameter of this method is ButtonState enumeration.
The following code snippet sets the button state of button1 using ControlPaint class.
- ControlPaint.DrawButton(System.Drawing.Graphics.FromHwnd(button1.Handle), 0, 0, button1.Width, button1.Height, ButtonState.Pushed);
Adding Button Click Event Hander
A Button control is used to process the button click event. We can attach a button click event handler at run-time by setting its Click event to an EventHandler obect. The EventHandler takes a parameter of an event handler. The Click event is attached in the following code snippet.
- dynamicButton.Click += new EventHandler(DynamicButton_Click);
The signature of Button click event handler is listed in the following code snippet.
- private void DynamicButton_Click(object sender, EventArgs e)
- { }
Creating a C# Button Dynamically
Creating a Button control at run-time is merely a work of creating an instance of Button class, set its properties and add Button class to the Form controls.
First step to create a dynamic button is to create an instance of Button class. The following code snippet creates a Button control object.
- Button dynamicButton = new Button();
Next step, you need to set Button class properties. You need to make sure to specify the Location, Width, Height or Size properties. The default location of Button is left top corner of the Form. The Location property takes a Point that specifies the starting position of the Button on a Form. The Size property specifies the size of the control. We can also use Width and Height property instead of Size property. The following code snippet sets Location, Width, and Height properties of a Button control.
- dynamicButton.Location = new Point(20, 150);
- dynamicButton.Height = 40;
- dynamicButton.Width = 300;
In the next step, you may set more properties of the Button control.
The following code snippet sets background color, foreground color, Text, Name, and Font properties of a Button.
- dynamicButton.BackColor = Color.Red;
- dynamicButton.ForeColor = Color.Blue;
- dynamicButton.Text = «I am Dynamic Button»;
- dynamicButton.Name = «DynamicButton»;
- dynamicButton.Font = new Font(«Georgia», 16);
A Button control is used to process the button click event. We can attach a button click event handler at run-time by setting its Click event to an EventHandler obect. The EventHandler takes a parameter of an event handler. The Click event is attached in the following code snippet.
- dynamicButton.Click += new EventHandler(DynamicButton_Click);
The signature of Button click event handler is listed in the following code snippet.
- private void DynamicButton_Click(object sender, EventArgs e)
- { }
Now the last step is adding a Button control to the Form. The Form.Controls.Add method is used to add a control to a Form. The following code snippet adds a Button control to the current Form.
- Controls.Add(dynamicButton);
The complete code is listed in the following code, where CreateDynamicButton methods creates a Button control to a Form at run-time, attaches a click event handler of the button and adds Button control to the Form by calling Form.Controls.Add() method.
- private void CreateDynamicButton()
- {
- Button dynamicButton = new Button();
- dynamicButton.Height = 40;
- dynamicButton.Width = 300;
- dynamicButton.BackColor = Color.Red;
- dynamicButton.ForeColor = Color.Blue;
- dynamicButton.Location = new Point(20, 150);
- dynamicButton.Text = «I am Dynamic Button»;
- dynamicButton.Name = «DynamicButton»;
- dynamicButton.Font = new Font(«Georgia», 16);
- dynamicButton.Click += new EventHandler(DynamicButton_Click);
- Controls.Add(dynamicButton);
- }
- private void DynamicButton_Click(object sender, EventArgs e)
- {
- MessageBox.Show(«Dynamic button is clicked»);
- }
You need to make sure to call CreateDynamicButton() method on the Form’s constructor just after InitializeComponent() method, listed as following.
- public Form1()
- {
- InitializeComponent();
- CreateDynamicButton();
- }
Summary
In this article, we discussed how to create Button control in Windows Forms using C# at design-time as well as at run-time. We also saw how to set a button properties and set the button click event handler.
- Details
- Written by David Corrales
- Last Updated: 13 June 2016
- Created: 07 June 2011
- Hits: 41301
Button Control [System.Windows.Forms.Button]
Creates a clickable button. Used to initiate or end an action.
- MSDN Page: System.Windows.Forms.Button
- Default Event: Click
Important properties of the Button object
- Text
- Font
- ForeColor
- Enabled
- BackgroundImage
- Image
- TextImageRelation
- FlatStyle
- DialogResult
Important events of the Button object
- Click
Important properties
Text property: Sets the text on the button face
Use the Text property to get, set, and change the text that is displayed on the button.
Value type: System.String
Default value: (button name, such as ‘button1’)
Note: PrimalScript and PowerShell Studio automatically rename the button when you set the Text property. For example, if you set the Text property to “OK”, the button is named “$buttonOK”.
To get the text on a button:
To set the text on a button, use an assignment statement. You can include variables and expressions in the assigned string value.
$Name = 'PowerShell' $buttonTest.Text = "Start $Name"
To change the text on the button:
ButtonLoad_click = { # Get the text currently in the label and evaluate it. if ($ButtonTest.Text -eq 'Load table') { Get-Table $ButtonLoad.Text = 'Clear table' # Change the text in the label. } else { Clear-Table $ButtonLoad.Text = 'Load table' } }
Font property: Determines the size and style of the button text
Use the Font property to change the style or the size of the text on the button, such as to emphasize or de-emphasize a button.
Value Type: System.Drawing.Font
Default: Microsoft Sans Serif 8.25
Tips:
- To set the font easily, in the Properties pane for the Button, in the Font row, click the ellipsis (…) and then use the Font selector.
- To automatically resize the button text to fit the button, set the AutoSize property to True.
To script a font change, set the Font property to a string with the Font name, size, and style.
$buttonStart, style=Bold, Italic'
To determine other properties of the font, create a System.Drawing.Font object.
$ClickFont = [System.Drawing.Font]::new('Microsoft Sans Serif', 8.25, [System.Drawing.FontStyle]::Regular) $ClickedFont = [System.Drawing.Font]::new('Segoe UI', 16, [System.Drawing.FontStyle]::Italic) $buttonStart_Click={ if ($buttonStart.Text -eq 'Click') { $buttonStart.Text = 'Clicked' $buttonStart.Font = $ClickedFont } else { $buttonStart.Text = 'Click' $buttonStart.Font = $ClickFont } }
ForeColor property: Determines the color of the button text
Use the ForeColor property to get, set, and change the color of the text on the button.
Value type: [System.Drawing.Color]
Default: ControlText (Black)
To set the ForeColor property in a script:
$buttonOK.ForeColor = [System.Drawing.Color]::Red
-or-
$buttonOK.ForeColor = "Red"
Note: When the value of the FlatStyle property is System, the ForeColor, BackColor, Image, and BackgroundImage property values are determined by the operating system and cannot be changed.
Enabled property: Determines whether the button responds when clicked
Use the Enabled property to temporarily enable or disable the click feature of the button. For example, use Enabled = $false to disable the click feature after the button has been clicked or while a function is running.
Value Type: [System.Boolean] ($True, $False).
Default: $True
To completely disable the click feature of the button, omit the Click event handler or enter an empty script block.
To set the Enabled property in the script:
$button1.Enabled = $false
BackgroundImage: Places an image behind the button text
Use this property to display an icon, bitmap, or image of any type under the button text.
Value Type: [System.Drawing.Image]
Default: (None; Same as Form.BackgroundImage)
To add an image from a file to a button, use BackgroundImage property in the Property pane. Click the ellipsis and, in File Explorer, select a file. PowerShell Studio converts the file into a bitmap string (64-bit byte array) so it is independent of the local system.
To place an image over the button text (in the foreground), use the Image property of the button.
Image: Places an image over the button text
Use this property to display an icon, bitmap, or image of any type in the foreground of the button.
Value Type: [System.Drawing.Image]
Default: (None; Same as Form.BackgroundImage)
For example, this button has an image, but no text:
To add a image from a file, use Image property in the Property pane. Click the ellipsis and, in File Explorer, select a file. PowerShell Studio converts the file into a bitmap string (64-bit byte array) so it is independent of the local system.
To place an image under the button text, use the BackgroundImage property of the button.
Note: When the value of the FlatStyle property is System, the ForeColor, BackColor, Image, and BackgroundImage property values are determined by the operating system and cannot be changed.
TextImageRelation: Determines the location of the image relative to the text.
Use the TextImageRelation property to change the location of the button text so it doesn’t cover the image.
Value Type: System.Windows.Forms.TextImageRelation enumeration
Default: Overlay
Valid values are:
Overlay: Image and text share the same space
ImageBeforeText: Text appears to the right of the image
TextBeforeImage: Text appears to the left of the image
ImageAboveText: Text appears below the image
TextAboveImage: Text appears above the image
FlatStyle property: Determines how the control appears when a user mouses-over and clicks.
Use the FlatStyle property to change the response when the cursor focuses on the button.
Value Type: System.Windows.Forms.FlatStyle
Default: Standard
The FlatStyle property is effective only when the button is enabled. The effect of each value type is specific to the user’s operating system.
Note: When the value of the FlatStyle property is System, the ForeColor, BackColor, Image, and BackgroundImage property values are determined by the operating system and cannot be changed.
Valid values are:
Flat: The button appears flat. It changes color on mouse-over.
Popup: The button appears flat. When the mouse pointer moves over it, the button appears three-dimensional.
Standard: The button appears three-dimensional. It changes color on mouse-over.
System: Use the FlatStyle and colors of the user’s operating system.
DialogResult: Closes the form and tells the parent form which button closed it.
Use the DialogResult property to close a form and return a value [System.Windows.Forms.DialogResult] to a parent form (if any) that indicates which button was click to close the child form. For example, if the child form has OK and Cancel buttons, you can use the DialogResult property to tell the parent form which button closed the form.
This property closes the form, even when the form is not a modal (child) form.
Warning: When the DialogResult property has a value other than “None,” clicking the button closes the form. You do not need to write a Click event handler. If the button has a Click event handler, the form closes immediately after executing the Click event handler code.
Value Type: System.Windows.Forms.DialogResult enumeration
Default: None
Valid values include:
None (Default): The form does not close automatically. No value is returned to the parent form. The Click event handler determines the response of the button to a Click event.
OK: Closes the form and returns an OK value (usually sent from an OK button).
Cancel: Closes the form and returns a Cancel value (usually sent from a Cancel or X button).
Abort: Closes the form and returns an Abort value (usually sent from an Abort button).
Retry: Closes the form and returns a Retry value (usually sent from a Retry button).
Ignore: Closes the form and returns an Ignore value (usually sent from an Ignore button).
Yes: Closes the form and returns a Yes value (usually sent from a Yes button).
No: Closes the form and returns a No value (usually sent from a No button).
In this IF statement, the main form uses the Call-Childform_psf function to open a child form. When the child form closes, the main form tests for a DialogResult value of ‘OK’.
if (Call-ChildForm_psf -eq [System.Windows.Forms.DialogResult]::OK) { . . . }
These statement show how to use DialogResult with a message box. The DialogResult of the OK button in the message box has a default value of OK.
The first command creates the message box and saves the DialogResult value in the $result variable. The IF statement checks for a value of OK in the result and proceeds accordingly.
$result = [System.Windows.Forms.MessageBox]::Show("Press OK to continue", "Question") if ($result -eq 'OK') { . . . }
Important events
Click event: Occurs when the button is clicked.
Write a Click event handler that runs when the button is clicked. This is one of the most important events you will use when creating GUI applications.
Note: If you use the DialogResult property, the Click event handler run immediately before the form closes.
For example, the following Click event handler runs when the button is clicked. The button is disabled and the button text changes to “Disabled”.
$buttonEnabled_Click = { $buttonEnabled.Enabled = $false $buttonEnabled.Text = "Disabled" }
Button before Click event:
Button after Click event:
Note about events:
To discover which control called the event script block, use the $this automatic variable. The $this variable is particularly useful when you have multiple controls calling the same event script block. The $this variable tells which control triggered the event, so you can respond in a control-specific way.
For example, this Click event script block disables the control that called it:
$Disable_Click={ $this.Enabled = $false }
This C# tutorial uses the Button control from Windows Forms. A Button can be clicked.
Button. A button accepts clicks.
In Windows Forms we use a Button control that accepts click events and performs other actions in the user interface. This control provides a way to accept input—and invoke logic based on that input.
Start. First, this tutorial uses the Windows Forms control set. The Button control is one control you can add to any Windows Forms program. It renders as a rectangular box with text or images in the center.
Action: You can use a Button control to perform an action when the user clicks or presses a key to activate the button.
Event
Add. Let’s describe how you can add a Button control to a Windows Forms program. In Visual Studio, make sure the Window you want to add the button to is shown. Go to the View menu and select the Toolbox option.
This presents a list of all the Windows Forms controls you can add to your project on the screen. Locate the Button item in the Toolbox window and either double-click it or drag it to your window.
And: Now, when you see the Button on the window that was inserted, you can right-click on it and select Properties.
Text. In the properties pane or window, you can either change the regular properties or the event handlers on the Button control. You can alter any Button property through the properties window.
Next: We see how the Button properties were changed so that the Button contains the text «Open» instead of the «button1» default label.
Using ellipsis (three periods). Here we use three periods after the Text property on the Button control in the properties window. We use three periods (an ellipsis) because the Button in our example will be used to open a dialog window.
The ellipsis is used to signal that an action that requires the user’s attention such as a dialog box will occur if the control is activated as by clicking on it. I feel that using ellipses correctly on strings in programs is important.
Click. Windows Forms programs are event-based. They are idle until the user takes an action upon a control. When you add a Click event handler to a Button, the event handler method will be invoked when the user clicks on the button.
Note: Windows Forms provides some automatic features that will turn an Enter keypress into a Click event in some cases.
In the Visual Studio properties window, a lightning bolt signifies the event handlers list. You can click on it and then double-click on an event. At that point, the C# code will be inserted into the user-code portion of the project.
Then: You manually edit that C# code to add the program-specific logic. Any statements can be used.
Instead of double-clicking to create a new event handler for one control event, you can use the drop-down box to select a method that already exists to handle the events. There are restrictions: the method signature must be compatible.
Tip: Wiring multiple events to one event handler is useful. It can simplify the source code of medium-complexity programs.
Windows Forms code that uses Button control: C# using System; using System.Windows.Forms; namespace WindowsFormsApplication21 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Dot Net Perls says hello.", "How is your day going?"); } } }
We see the body of the Click event that can be added to handle click events for the button1 control instance. You do not need to manually type in the «button1_Click» method signature, and doing so is much harder to maintain.
Instead: You can the interface in Visual Studio to create empty event handler methods.
Then: You can insert logic such as calling the MessageBox.Show method call to perform a trivial action when the event is processed.
MessageBox.Show
Discussion. Let’s consider various tips and tricks you can use to enhance the Button functionality in your Windows Forms controls. Generally, by specifying the constraints of your Button, you can avoid modifying pixel dimensions for the most part.
Tip: You should experiment with the Anchor property to control the resizing of the Button if it is in a variable-sized window.
Further: I recommend putting Buttons inside TableLayoutPanel cells, as this reduces the need to position them manually.
TableLayoutPanel
Button Enabled property. You can at any time change the enabled state of buttons by setting Enabled to true or false. I recommend tying the Enable property’s value to an expression based on another part of the user interface.
Also: You can assign multiple Enabled properties on controls to each other to ensure the user interface is usable at all times.
Summary. We explored the Button control in the Windows Forms control set. First we created a new Windows Forms project. We added add a new instance of the Button control. We next changed the appearance of the Button control and its text.
Related Links
Adjectives
Ado
Ai
Android
Angular
Antonyms
Apache
Articles
Asp
Autocad
Automata
Aws
Azure
Basic
Binary
Bitcoin
Blockchain
C
Cassandra
Change
Coa
Computer
Control
Cpp
Create
Creating
C-Sharp
Cyber
Daa
Data
Dbms
Deletion
Devops
Difference
Discrete
Es6
Ethical
Examples
Features
Firebase
Flutter
Fs
Git
Go
Hbase
History
Hive
Hiveql
How
Html
Idioms
Insertion
Installing
Ios
Java
Joomla
Js
Kafka
Kali
Laravel
Logical
Machine
Matlab
Matrix
Mongodb
Mysql
One
Opencv
Oracle
Ordering
Os
Pandas
Php
Pig
Pl
Postgresql
Powershell
Prepositions
Program
Python
React
Ruby
Scala
Selecting
Selenium
Sentence
Seo
Sharepoint
Software
Spellings
Spotting
Spring
Sql
Sqlite
Sqoop
Svn
Swift
Synonyms
Talend
Testng
Types
Uml
Unity
Vbnet
Verbal
Webdriver
What
Wpf