====== jControls NF4 ======

NOTE: This library is deprecated in favor of ComfileTech.jControls.

jControls NF4 is a cross platform .NET Framework 4 WinForms control library for creating graphical user interfaces and HMIs, in the latest version of Visual Studio, for both Windows and Linux. It achieves this by leveraging hardware-accelerated, cross-platform graphics libraries and by utilizing [[https://gitlab.winehq.org/mono/mono|Mono]] on Linux. ===== 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 * Latest 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]] [[.:project_settings:index|Essential Project Settings]] [[.: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.jControlsNF4.jForm.html|jForm]] control is analogous to the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.form?view=netframework-4.8.1|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.jControlsNF4.jPanel.html|jPanel]] control is analogous to the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.panel?view=netframework-4.8.1|Panel]], but has jControls NF4's rich appearance features, and can contain jControls. | | {{jtablelayoutpanel_icon.png?75}} | [[.:jtablelayoutpanel:index|jTableLayoutPanel]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControlsNF4.jTableLayoutPanel.html|jTableLayoutPanel]] control is analogous to the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.tablelayoutpanel?view=netframework-4.8.1|TableLayoutPanel]], but can contain jControls. | ==== Shapes ==== | {{jline_icon.png?50}} | [[.:jline:index|jLine]] | The [[https://api.comfiletech.com/csharp/api/ComfileTech.jControlsNF4.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.jControlsNF4.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.jControlsNF4.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.jControlsNF4.jButton.html|jButton]] control is analogous the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.button?view=netframework-4.8.1|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.jControlsNF4.jImageButton.html|jImageButton]] control is identical to the [[jcontrols_nf4: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.jControlsNF4.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.jControlsNF4.jImageLamp.html|jImageLamp]] control is identical to the [[jcontrols_nf4: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.jControlsNF4.jLabel.html|jLabel]] control is analogous the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.label?view=netframework-4.8.1|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.jControlsNF4.jProgress.html|jProgress]] control is analogous the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.progressbar?view=netframework-4.8.1.|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.jControlsNF4.jSlider.html|jSlider]] control is analogous the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.trackbar?view=netframework-4.8.1|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.jControlsNF4.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.jControlsNF4.jCheckBox.html|jCheckBox]] control is analogous to the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.checkbox?view=netframework-4.8.1|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.jControlsNF4.jRadioButton.html|jRadioButton]] control is analogous to the .NET Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.radiobutton?view=netframework-4.8.1|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.jControlsNF4.jMessageBox.html|jMessageBox]] control is a composite control of [[jcontrols_nf4:jbutton:index|jButtons]] and [[jcontrols_nf4: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.jControlsNF4.jNumpad.html|jNumpad]] control is a composite control of [[jcontrols_nf4:jbutton:index|jButtons]] and [[jcontrols_nf4: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 Framework's [[https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.usercontrol?view=netframework-4.8.1|UserControl]], but with jControls NF4's rich appearance features. Use it to create your own composite controls. |