====== jControls ====== jControls is a cross platform, hardware accelerated .NET WinForms control library for creating graphical user interfaces and HMIs using the latest versions of Visual Studio, .NET and C#. ===== Features ===== * Cross-Platform (Windows and Linux, [[https://en.wikipedia.org/wiki/X86-64|x86-64]] and [[https://en.wikipedia.org/wiki/AArch64|AAarch64]]) * Hardware Accelerated * Transparency and Alpha Blending * Fills, Borders, Color Gradients, Gloss, and Drop Shadow * Highly Customizable * Visual Studio Designer Support All controls have a rich set of features to give your applications a modern aesthetic and the power to fully customize their appearance. |{{.:jcontrolsnf4_showcase_widgets.png?450|}} | {{.:jcontrolsnf4_showcase_shapes.png?450|}} | |{{.:jcontrolsnf4_showcase_numpad.png?450|}} | {{.:jcontrolsnf4_showcase_messagebox.png?450|}} | |{{.:jcontrolsnf4_showcase_graph.png?450|}} | | All controls have full designer support in the latest version of Visual Studio for a true WYSIWYG GUI design experience, and the world-class development experience that Visual Studio is known for. {{ https://downloads.comfiletech.com/jControlsNF4/jcontrolsnf4_empty_demo.mp4?900x641 }} Applications can be developed and debugged on a Windows PC using the latest version of Visual Studio, and deployed to any supported target (e.g. an ARM Linux Panel PC), without recompiling, by simply copying the files in the Visual Studio project's output directory to the target. {{ https://downloads.comfiletech.com/jControlsNF4/jcontrolsnf4_deploy_linux.mp4?900x641 }} ===== Getting Started ===== [[.:development_environment:index|Setting Up a Development Environment]] [[.:showcase_demo:index|Creating a Showcase Demo Project]] [[.:new_project:index|Creating a New Project]] [[.:runtime_environment:index|Setting Up a Runtime Environment]] [[.:deploy_linux:index|Deploying an Application to a Linux PC]] ===== Basic Concepts ===== [[.:hosting_jcontrols:index|Hosting jControls]] [[.:fills_and_borders:index|Fills and Borders]] [[.:gloss_and_dropshadow:index|Gloss and Drop Shadow]] [[.:text_features:index|Text Features]] [[.:shape_and_cornerradii:index|Shape and Corner Radii]] [[.:optimizing:index|Optimizing for Performance]] [[.:disable_doubleclick:index|The DisableDoubleClick Property]] ===== Controls Reference ===== ==== Container Controls ==== | {{jform_icon.png?75}} | [[.:jform:index|jForm]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jForm.html|jForm]] control is analogous to the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.form|Form]], but has a much more rich appearance, and serves as the primary container for all other jControls. | | {{jpanel_icon.png?75}} | [[.:jpanel:index|jPanel]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jPanel.html|jPanel]] control is analogous to the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.panel|Panel]], but has jControls' rich appearance features, and can contain jControls. | | {{jtablelayoutpanel_icon.png?75}} | [[.:jtablelayoutpanel:index|jTableLayoutPanel]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jTableLayoutPanel.html|jTableLayoutPanel]] control is analogous to the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.tablelayoutpanel|TableLayoutPanel]], but can contain jControls. | ==== Shapes ==== | {{jline_icon.png?50}} | [[.:jline:index|jLine]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jLine.html|jLine]] control draws a polyline (i.e. a series of line segments connected on after the other). | | {{jellipse_icon.png?50}} | [[.:jellipse:index|jEllipse]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jEllipse.html|jEllipse]] control draws a circle or ellipse inscribed in the control's area. | | {{jrectangle_icon.png?50}} | [[.:jrectangle:index|jRectangle]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jRectangle.html|jRectangle]] control draws rectangular or rounded rectangular shape. | ==== Widgets ==== | {{jbutton_icon.png}} | [[.:jbutton:index|jButton]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jButton.html|jButton]] control is analogous the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.button|Button]], but has a much more rich appearance, and a few additional features. | | {{jimagebutton_icon.png}} | [[.:jimagebutton:index|jImageButton]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jImageButton.html|jImageButton]] control is identical to the [[jcontrols:jbutton:index|jButton]] control, but uses images in the ''PressedAppearance'' and ''ReleasedAppearance'' properties to describe its appearance. | | {{jlamp_icon.png}} | [[.:jlamp:index|jLamp]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jLamp.html|jLamp]] control is designed to mimic an indicator lamp typically found on dash boards and control panels. | | {{jimagelamp_icon.png}} | [[.:jimagelamp:index|jImageLamp]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jImageLamp.html|jImageLamp]] control is identical to the [[jcontrols:jlamp:index|jLamp]] control, but uses images in the ''OnAppearance'' and ''OffAppearance'' properties to describe its appearance. | | {{jlabel_icon.png}} | [[.:jlabel:index|jLabel]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jLabel.html|jLabel]] control is analogous the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.label|Label]], but has a much more rich appearance, and a few additional features. | | {{jprogress_icon.png}} | [[.:jprogress:index|jProgress]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jProgress.html|jProgress]] control is analogous the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.progressbar|ProgressBar]], but has a much more rich appearance, and a few additional features. | | {{jslider_icon.png}} | [[.:jslider:index|jSlider]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jSlider.html|jSlider]] control is analogous the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.trackbar|TrackBar]], but has a much more rich appearance, and a few additional features. | | {{jswitch_icon.png}} | [[.:jswitch:index|jSwitch]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jSwitch.html|jSwitch]] control implements a sliding switch that can toggle between an on and off state. | | {{jcheckbox_icon.png}} | [[.:jcheckbox:index|jCheckBox]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jCheckBox.html|jCheckBox]] control is analogous to the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.checkbox|CheckBox]], but has a much more rich appearance and a few additional features. | | {{jradiobutton_icon.png}} | [[.:jradiobutton:index|jRadioButton]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jRadioButton.html|jRadioButton]] control is analogous to the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.radiobutton|RadioButton]], but has a much more rich appearance and a few additional features. | ==== Composite Controls ==== | {{jmessagebox_icon.png?75}} | [[.:jmessagebox:index|jMessageBox]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jMessageBox.html|jMessageBox]] control is a composite control of [[jcontrols:jbutton:index|jButtons]] and [[jcontrols:jlabel:index|jLabels]] that can be used to display a message or question to the operator, and accept their response. | | {{jnumpad_icon.png?75}} | [[.:jnumpad:index|jNumpad]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControls.jNumpad.html|jNumpad]] control is a composite control of [[jcontrols:jbutton:index|jButtons]] and [[jcontrols:jlabel:index|jLabels]] that can be used to accept numeric input from the operator. | | {{jusercontrol_icon.png?75}} | [[.:jusercontrol:index|jUserControl]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControlsNF4.jUserControl.html|jUserControl]] control is analogous the .NET's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.usercontrol|UserControl]], but with jControls' rich appearance features. Use it to create your own composite controls. |