DataJuggler.Win.Controls 8.0.3

dotnet add package DataJuggler.Win.Controls --version 8.0.3
NuGet\Install-Package DataJuggler.Win.Controls -Version 8.0.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DataJuggler.Win.Controls" Version="8.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DataJuggler.Win.Controls --version 8.0.3
#r "nuget: DataJuggler.Win.Controls, 8.0.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DataJuggler.Win.Controls as a Cake Addin
#addin nuget:?package=DataJuggler.Win.Controls&version=8.0.3

// Install DataJuggler.Win.Controls as a Cake Tool
#tool nuget:?package=DataJuggler.Win.Controls&version=8.0.3

News

3.17.2024: Happy St. Paddy's Day - Fixed a bug in the Timer Display that seemed to come from .NET 8 and wasn't there in .NET 7

11.20.2023: DataJuggler.UltimateHelper was updated.

11.15.2023: This project has been updated to .NET8.

9.24.2023: The TabHostControl now has a ButtonLabelColor property must be passed in to the AddTabButton method.

8.13.2023: DataJuggler.UltimateHelper was updated.

DataJuggler.Win.Controls

DataJuggler.Win.Controls is a collection of C# WinForms user controls that make it simple to build user interfaces.

List of Classes

Button

This button is an image button with a few themes.

LabelCheckBoxControl

The LabelCheckBoxControl consists of a Label and a Checkbox. Set the LabelText, LabelColor and LabelWidth properties to control its appearnce.

LabelComboBoxControl

The LabelComboBoxControl consists of a Label and a ComboBox. Set the LabelText, LabelColor and LabelWidth properties to control its appearnce. The LoadItems method can load a list of objects or an enumeration can be loaded.

LabelLabelControl

The LabelLabelControl consists of a Label and a value Label. Both labels can be customized.

LabelTextBoxBrowserControl

The LabelTextBoxBrowserControl consists of a Label, a TextBox and a button. Switch the BrowseType to File, Folder or Custom.

LabelTextBoxControl

The LabelTextBoxControl consists of a Label and a TextBox. You can customize the appearance of the Label and TextBox.

ListEditorControl

The ListEditorControl is used to edit a list of objects. This control uses interfaces to create methods for Add, Edit and Delete.

SaveCancelControl

This control contains a Save button and a Cancel button.

TabButton

Divide the interface up into Tabs, and use this button to change tabs.

TabHostControl

9.25.2023: I made a short video on how to setup and use the TabHostControl

C# How to use the Tab Control of DataJuggler Win Controls https://youtu.be/WFQcAlYt2F4

Instructions for use

Add NuGet package DataJuggler.Win.Controls to your project, and using statements to your form for:

using DataJuggler.Win.Controls;
using DataJuggler.Win.Controls.Interfaces;

Next, have your form implement ITabHostParent interface. To see a working example, visit this project:

Random USD (a work in progress, but the TabHostControl works). https://github.com/DataJuggler/RandomUSD

After you add the interface for ITabHostParent to your project, right click and select 'Implement Interface', and two events will be added to your project. Make sure to add your buttons in reverse order, as the way Dock.Left works your buttons will display last first.

private void TabHostControl_Load(object sender, EventArgs e)
{
    // Setup the TabHostControl
    TabHostControl.AddTabButton(3, "Materials", 200, Color.Black, false);
    TabHostControl.AddTabButton(2, "Props", 200, Color.Black, false);
    TabHostControl.AddTabButton(1, "Scenes", 200, Color.Black, true);
    TabHostControl.TopMargin = 16;
    TabHostControl.LeftMargin = 8;

    // Setup the Parent
    TabHostControl.TabHostParent = this;
}

public void TabSelected(TabButton selectedButton)
{
	// If the selectedButton object exists
    if (NullHelper.Exists(selectedButton))
    {
        switch (selectedButton.ButtonNumber)
        {
            case 1:

                // setup for Scenes
                UIVisibility(ScreenTypeEnum.Scenes);

                // required
                break;

            case 2:

                // setup for Props
                UIVisibility(ScreenTypeEnum.Props);

                // required
                break;

            case 3:
			
				// setup for Materials
                UIVisibility(ScreenTypeEnum.Materials);

                // required
                break;
        }
    }
}

TabImagesControl (Needs to be updated probably)

This control is used to host an enabled state image and a disabled state image.

TimerDisplay

The Timer Display is used to display time such as a count down timer.

TimerDisplayHost

Contains some controls to setup the TimerDisplay control.

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on DataJuggler.Win.Controls:

Package Downloads
DataJuggler.DBCompare

DB Compare compares two instances of a SQL Server database. This project has been on .Net Framework for about 10 or 12 years or more. DB Compare has been updated to .NET8.0, and should run faster. C# Developers - Now you can create a project in a manner of minutes and this way you can stay updated with the latest version. This product is also a standalone application. Using it as a Nuget package is just a nice way to always have the latest version.

DataJuggler.Tutorials.PasswordVault

This project contains a demo form and control used for a tutorial video.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.3 94 3/17/2024
8.0.2 237 11/20/2023
8.0.1 114 11/20/2023
8.0.0 133 11/15/2023
7.2.1 143 9/26/2023
7.2.0 120 9/24/2023
7.1.8 160 8/14/2023
7.1.6 163 7/14/2023
7.1.5 143 7/14/2023
7.1.4 158 6/21/2023
7.1.3 155 6/21/2023
7.1.2 275 3/13/2023
7.1.1 255 2/24/2023
7.1.0 229 2/24/2023
7.0.1 445 11/9/2022
7.0.0 338 11/9/2022
7.0.0-rc1 193 10/19/2022
6.2.4 475 6/17/2022
6.2.3 437 6/16/2022
6.2.2 419 5/15/2022
6.2.1 419 5/15/2022
6.2.0 497 4/5/2022
6.1.4 476 1/24/2022
6.1.3 454 1/19/2022
6.1.2 310 1/4/2022
6.1.1 316 1/1/2022
6.1.0 295 12/30/2021
6.0.0 310 12/11/2021
5.8.10 364 11/7/2021
5.8.9 366 10/31/2021
5.8.8 353 9/15/2021
5.8.7 369 9/13/2021
5.8.5 413 9/10/2021
5.8.4 406 9/9/2021
5.8.3 376 9/5/2021
5.8.2 477 8/3/2021
5.8.1 404 8/3/2021
5.8.0 364 8/2/2021
5.7.16 387 8/2/2021
5.7.15 399 7/15/2021
5.7.14 379 7/15/2021
5.7.12 348 7/15/2021
5.7.11 350 7/15/2021
5.7.10 397 7/15/2021
5.7.9 376 6/7/2021
5.7.8 393 6/7/2021
5.7.7 383 6/7/2021
5.7.6 404 6/7/2021
5.7.5 379 6/7/2021
5.7.4 532 12/23/2020
5.7.3 443 11/29/2020
5.7.2 512 11/29/2020
5.7.1 574 11/29/2020
5.6.10 740 1/9/2020
5.6.9 717 10/2/2019
5.6.8 632 9/22/2019
5.6.7 607 9/22/2019
5.6.6 623 9/4/2019
5.6.5 612 9/2/2019
5.6.4 612 9/2/2019
5.6.2 622 9/2/2019
5.6.1 604 9/1/2019
5.6.0 608 8/31/2019
5.5.9 629 8/31/2019
5.5.8 637 8/31/2019
5.5.7 630 8/30/2019
5.5.6 638 8/30/2019
5.5.5 600 8/16/2019
5.5.4 629 8/11/2019
5.5.3 659 8/11/2019
5.5.2 1,039 8/3/2019
5.5.1 1,123 8/2/2019
5.5.0 638 8/2/2019
5.4.6 654 7/20/2019
5.4.5 687 6/5/2019
5.4.4 705 6/2/2019
5.4.2 703 6/2/2019
5.4.1 685 5/27/2019
1.4.3 1,755 1/23/2015
1.4.2 1,352 1/21/2015
1.4.1 1,354 1/13/2015

11.20.2023: DataJuggler.UltimateHelper was updated.

11.15.2023: This project has been updated to .NET8.

9.24.2023: I broke the TabHostControl by adding a LabelForeColor must now be passed
in to the AddTabButton method. Also the TabButton now has a ButtonLabelColor.

8.13.2023: DataJuggler.UltimateHelper was updated.

Update 7.14.2023: Working on the TimerDisplayControl. Hoping to have it fixed.

Update 6.21.2023: I updated DataJuggler.UltimateHelper package.

Update 6.17.2022
Version 6.2.4: I updated DataJuggler.UltimateHelper plus SaveCancelControl button widths.

Update 5.14.2022
Version 6.2.2: Updated DataJuggler.UltimateHelper Nuget package.
Version 6.2.1: Made some consistency among start up Init methods for Label Size and Font defaults.

Update 4.5.2022: I built a new sample project called RemindMe, and I updated the ListEditor and SaveCancelControls.

Update 1.24.2022: I updated UltimateHelper, so I published a new release.
This release is now .NET6 only.

Update 12.31.2021:
6.1.0: No code changes, but I realized the file version was not updating.

Update 12.29:2021
Version 6.1.0: I added a new TimerDisplay control. Add the control to your form, call the Start and Stop methods
to control the timer display. I added a state for Pause, although Pause is not handled yet. Pause is a little more
complicated than Start and Stop when it comes to ElapsedTime. I would have to keep track of all the Start and Stops
so put off the Pause until I need it.

Update 12.11.2021: I updated this project to Net 6.0, use an older version for .Net 5.

Update 11.7.2021
Version 5.8.10: I updated DataJuggler.UltimateHelper Nuget package.

Update 10.31.2021
Version 5.8.9: DataJuggler.UltimateHelper had a new release.

Update 9.15.2021: I had a Button_MouseEnter and Button_MouseLeave event, but it was applied to the Inner
Button, not the Button user control.

Update 9.13.2021: Version 5.8.7: I fixed the Theme's a little.

Update 9.10.2021 B: I fixed a bug where the LabelCheckBoxControl is not Editable at start.

Update 9.10.2021: I updated I updated DataJuggler.UltimateHelper again, and Nuget behaves better if this stays updated.

Update 9.9.2021: I updated DataJuggler.UltimateHelper, so Nuget behaves better if this stays updated.

Update 9.5.2021
Version 5.8.3: I upgraded DataJuggler.UltimateHelper to 1.6.4. Having a 1.6 version and a 1.5x version caused a conflict of this package.

Update 8.2.2021 C: I updated DataJuggler.UltimateHelper, and this removed WordParser, so i bebuilt this library.

Update: 8.2.2021 B: After testing this for one second, I realized I needed an ITextLinesLoadedListener interface, so I added one. New video coming soon for this and documentation.

Update: 8.2.2021: I added a Windows Form called FileBrowserWithButtonForm, that contains a LabelTextBoxControl, and a button.

Update 6.15.2021 B: I fixed the FlatStyle. I had to add this.OnClick to the Button.InnerButton to make it fire (hopefully this works).

Update 6.15.2021: Set FlatStyle to Flat and still didn't work. Trying again.

Update 6.14.2021: I added a Button recently, but I didn't set the FlatStyle to Flat. Oops.

Update 6.7.2021: Version 5.7.9: I fixed the issue of the Background not changing for Theme Dark for the new Button. It was caused by Programmer Stupidity in the chair I sit in. The button seems to work now, I think.

Update 6.7.2021: Version 5.7.8: I changed Text to ButtonText so the property showed up in the property dialog. More testing is needed, so use the button at your own risk.

Update 6.7.2021: Version 5.7.7: I added a Text property to the Button control. More testing is needed, so use the button at your own risk.

Update 6.7.2021: Version 5.7.6: I added some events for FontChanged, EnabledChanged and updated Theme to change the Fonts. Now to start testing.

Update 6.7.2021: Version 5.7.5: I added a Button class that I am just now testing.

Update 11.29.2020: Version 5.7.3: I discovered that the project SDK has been updated so that WindowsDesktop is no longer needed, only Microsoft.NET.Sdk. If I don't take this out, projects gets updated when this
library is added.

Update 11.29.2020: Version 5.7.2 was released to include an update for DataJuggler.UltimateHelper.

Note: This library used to be either DataJuggler.Net.UltimateHelper or DataJuggler.Core.UltimateHelper, which have both been archived. All new work on this library will be in the .Net 5 version.

This app was just converted to .Net 5. Everything should work, famous last words.

This is the first release for .Net 5. Nothing has been tested yet for .Net 5, at all. Use at your own risk.

The code itself has worked for 10 or more years, but new platform, new ball game.