SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftMask/OCX 7.0 - Masked Edit Control
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftPrintPreview/DLL 2.0 - Print Preview Control (discontinued)
SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftDirectory 3.5 - File/Folder Control (discontinued)
SftMask/OCX 7.0 - Masked Edit Control
SftOptions 1.0 - Registry/INI Control (discontinued)
SftPrintPreview/OCX 1.0 - Print Preview Control (discontinued)
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftTabs/NET 6.0 - Tab Control (discontinued)
SftTree/NET 2.0 - Tree Control
This sample illustrates a font dialog for font selection.
The source code is located at C:\Program Files (x86)\Softelvdm\SftBox OCX 5.0\Samples\Visual Studio - CSharp\FontDlg\Form1.cs or C:\Program Files\Softelvdm\SftBox OCX 5.0\Samples\Visual Studio - CSharp\FontDlg\Form1.cs (on 32-bit Windows versions).
private void closeButton_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
private void Form1_Load(object sender, System.EventArgs e)
{
// add all font information
UpdateFontNames();
}
private void UpdateFontNames()
{
// add all font names
fontNames.BulkUpdate = true;
fontNames.Items.Clear();
fontNames.Items.AddFontNames(-1, SftBoxFontConstants.fontSftBoxAll, true, 0);
fontNames.Items.Selection = 0;
PerformSort(fontNames, SftBoxSortConstants.sortSftBoxAscending);
fontNames.BulkUpdate = false;
fontNames.Columns.MakeOptimal(0);
fontNames.Items.RecalcHorizontalExtent(0);
}
private void UpdateFontStyles()
{
// add all styles for the current font name
if (fontNames.Items.Selection >= 0) {
string OldText = fontStyles.Edit.Text;
fontStyles.Items.AddFontStyles(fontNames.get_Cell(fontNames.Items.Selection,0).Text, 0, "", "");
int index = fontStyles.Items.Find(OldText, 0, 0, false, true, true);
if (index < 0) index = 0;
fontStyles.Items.Selection = index;
} else
fontStyles.Items.Clear();
PerformSort(fontStyles, SftBoxSortConstants.sortSftBoxAscending);
fontStyles.Columns.MakeOptimal(0);
fontStyles.Items.RecalcHorizontalExtent(0);
}
private void UpdateFontSizes()
{
// add all sizes for the current font name
if (fontNames.Items.Selection >= 0) {
string OldText = fontSizes.Edit.Text;
fontSizes.Items.AddFontSizes(fontNames.get_Cell(fontNames.Items.Selection,0).Text, 0);
int index = fontSizes.Items.Find(OldText, 0, 0, false, true, true);
if (index < 0) index = 0;
fontSizes.Items.Selection = index;
} else
fontSizes.Items.Clear();
PerformSort(fontSizes, SftBoxSortConstants.sortSftBoxAscending);
fontSizes.Columns.MakeOptimal(0);
fontSizes.Items.RecalcHorizontalExtent(0);
UpdateSample();
}
private void fontNames_SelectionChange(object sender, System.EventArgs e)
{
UpdateFontStyles();
}
private void fontStyles_SelectionChange(object sender, System.EventArgs e)
{
UpdateFontSizes();
}
private void fontSizes_SelectionChange(object sender, System.EventArgs e)
{
UpdateSample();
}
private void UpdateSample()
{
int SelItem = fontStyles.Items.Selection;
if (SelItem >= 0 && fontSizes.Edit.Text != "") {
sampleText.Text = "AaBbCcYyZz";
FontStyle style = 0;
if ((fontStyles.get_Cell(SelItem, 0).Data & 0x80000000) != 0)
style |= FontStyle.Italic;
int weight = (fontStyles.get_Cell(SelItem, 0).Data & 0x7fffffff);
if (weight > 400)
style |= FontStyle.Bold;
sampleText.Font = new Font(fontNames.Edit.Text, Convert.ToSingle(fontSizes.Edit.Text), style);
} else
sampleText.Text = "";
}
private void condHeaders_CheckedChanged(object sender, System.EventArgs e)
{
if (condHeaders.Checked) {
fontNames.Headers.Main = true;
fontNames.Headers.DropDown = false;
fontStyles.Headers.Main = true;
fontStyles.Headers.DropDown = false;
fontSizes.Headers.Main = true;
fontSizes.Headers.DropDown = false;
} else {
fontNames.Headers.Main = false;
fontNames.Headers.DropDown = true;
fontStyles.Headers.Main = false;
fontStyles.Headers.DropDown = true;
fontSizes.Headers.Main = false;
fontSizes.Headers.DropDown = true;
}
}
private void PerformSort(AxSftBox box, SftBoxSortConstants currDirection)
{
if (currDirection == SftBoxSortConstants.sortSftBoxAscending)
box.get_Header(0).Image.Appearance = SftPictureImageConstants.sftImageSortAsc;
else
box.get_Header(0).Image.Appearance = SftPictureImageConstants.sftImageSortDesc;
// Font styles and font names are sorted by Cell.Text property
// Font sizes are sorted according to numeric Cell.Data property
// Outside of this function, only sortSftBoxAscending and sortSftBoxDescending
// are used, so we need to translate these
if (box == fontSizes) {
if (currDirection == SftBoxSortConstants.sortSftBoxAscending)
currDirection = SftBoxSortConstants.sortSftBoxCellValueAscending;
else
currDirection = SftBoxSortConstants.sortSftBoxCellValueDescending;
}
box.Items.Sort(-1, 0, currDirection);
}
private void ReverseSortOrder(AxSftBox box, ref SftBoxSortConstants currDirection)
{
if (currDirection == SftBoxSortConstants.sortSftBoxAscending)
currDirection = SftBoxSortConstants.sortSftBoxDescending;
else
currDirection = SftBoxSortConstants.sortSftBoxAscending;
}
private void fontNames_ItemClick(object sender, AxSftBoxLib50._ISftBoxEvents_ItemClickEvent e)
{
if (e.areaType == SftBoxAreaConstants.areaSftBoxColumn) {
ReverseSortOrder(fontNames, ref fontNamesDirection);
PerformSort(fontNames, fontNamesDirection);
}
}
private void fontNames_ItemDblClk(object sender, AxSftBoxLib50._ISftBoxEvents_ItemDblClkEvent e)
{
if (e.areaType == SftBoxAreaConstants.areaSftBoxColumn) {
ReverseSortOrder(fontNames, ref fontNamesDirection);
PerformSort(fontNames, fontNamesDirection);
}
}
private void fontStyles_ItemClick(object sender, AxSftBoxLib50._ISftBoxEvents_ItemClickEvent e)
{
if (e.areaType == SftBoxAreaConstants.areaSftBoxColumn) {
ReverseSortOrder(fontStyles, ref fontStylesDirection);
PerformSort(fontStyles, fontStylesDirection);
}
}
private void fontStyles_ItemDblClk(object sender, AxSftBoxLib50._ISftBoxEvents_ItemDblClkEvent e)
{
if (e.areaType == SftBoxAreaConstants.areaSftBoxColumn) {
ReverseSortOrder(fontStyles, ref fontStylesDirection);
PerformSort(fontStyles, fontStylesDirection);
}
}
private void fontSizes_ItemClick(object sender, AxSftBoxLib50._ISftBoxEvents_ItemClickEvent e)
{
if (e.areaType == SftBoxAreaConstants.areaSftBoxColumn) {
ReverseSortOrder(fontSizes, ref fontSizesDirection);
PerformSort(fontSizes, fontSizesDirection);
}
}
private void fontSizes_ItemDblClk(object sender, AxSftBoxLib50._ISftBoxEvents_ItemDblClkEvent e)
{
if (e.areaType == SftBoxAreaConstants.areaSftBoxColumn) {
ReverseSortOrder(fontSizes, ref fontSizesDirection);
PerformSort(fontSizes, fontSizesDirection);
}
}