Hide

SftDirectory 3.5 - ActiveX File/Folder Control

Display
Print

SftDirectory.UserContents Event

A file/folder is added and application-specific contents can be added.

Syntax

VB.NETPrivate Sub object_UserContents(ByVal sender As Object, ByVal e As EventArgumentType) Handles object.UserContents
VBPrivate Sub object_UserContents(Folder As SftDirectoryFolder, ByVal Contents As SftDirectoryContentsConstants, UserString As String)
C#.NETvoid object_UserContents(object sender, EventArgumentType e);
VC++void OnUserContentsobject(ISftDirectoryFolder* Folder, enum SftDirectoryContentsConstants Contents, _bstr_t* UserString);
CHRESULT OnUserContentsobject(ISftDirectoryFolder* Folder, enum SftDirectoryContentsConstants Contents, BSTR* UserString);

object

A SftDirectory object.

Folder

Describes the file/folder being added for which application-specific contents can be added.

Contents

Defines the column contents for which application-specific contents can be added.

ContentsValueDescription
contentsSftDirectoryUser151User defined 1
contentsSftDirectoryUser252User defined 2
contentsSftDirectoryUser353User defined 3
contentsSftDirectoryUser454User defined 4
contentsSftDirectoryUser555User defined 5
contentsSftDirectoryUser656User defined 6
contentsSftDirectoryUser757User defined 7
contentsSftDirectoryUser858User defined 8
contentsSftDirectoryUser959User defined 9

UserString

On return, provides a string containing the text added to the file/folder in the column described by Contents.

Comments

The UserContents event occurs when a file/folder is added and application-specific contents can be added.

The Column.Contents property determines the type of data displayed and loaded into a column. If a column contains application-specific data (contentsSftDirectoryUser1 - contentsSftDirectoryUser9), the UserContents event occurs for each file/folder being added and for each column.

The AutoInitialLoad property may need to be set to False so the control does not load its contents immediately. This may be necessary if user-defined contents are added in certain columns. The UserContents event may not occur when the control is initially created, due to certain environment restrictions. For example, in Visual Basic, the UserContents event is not generated until the Form_Load event has occurred. The control however is created before the Form_Load event occurs, preventing the UserContents events from being handled by the application. This in effect prevents any user-defined contents from being added to the control. The solution is to set AutoInitialLoad to False and use the control's Reload method in the Form_Load event. Setting AutoInitialLoad to False isn't absolutely necessary, but it may save processing time as the control contents are only loaded once, in response to the Reload method.

Examples

VB.NET

    AxSftDirectory1.GridStyle = SftDirectoryGridStyleConstants.gridSftDirectoryBoth
    AxSftDirectory1.Headers.Style = SftDirectoryHeadersStyleConstants.headersSftDirectoryButton
    AxSftDirectory1.get_ColumnEntry(0).HeaderText = "Folder"
    AxSftDirectory1.get_ColumnEntry(1).HeaderText = "Full Path"
    AxSftDirectory1.get_ColumnEntry(1).Contents = SftDirectoryContentsConstants.contentsSftDirectoryUser1
    AxSftDirectory1.Reload(False, False)
End Sub

Private Sub AxSftDirectory1_UserContents(ByVal sender As Object, ByVal e As AxSftDirectoryLib30._ISftDirectoryEvents_UserContentsEvent) Handles AxSftDirectory1.UserContents
    If e.contents = SftDirectoryContentsConstants.contentsSftDirectoryUser1 Then
        e.userString = e.folder.Path
    End If
End Sub

VB6

    SftDirectory1.GridStyle = gridSftDirectoryBoth
    SftDirectory1.Headers.Style = headersSftDirectoryButton
    SftDirectory1.ColumnEntry(0).HeaderText = "Folder"
    SftDirectory1.ColumnEntry(1).HeaderText = "Full Path"
    SftDirectory1.ColumnEntry(1).Contents = contentsSftDirectoryUser1
    SftDirectory1.Reload False, False
End Sub

Private Sub SftDirectory1_UserContents(ByVal Folder As SftDirectoryLib30.ISftDirectoryFolder, ByVal Contents As SftDirectoryLib30.SftDirectoryContentsConstants, UserString As String)
    If Contents = contentsSftDirectoryUser1 Then
        UserString = Folder.Path
    End If
End Sub

C#

    axSftDirectory1.GridStyle = SftDirectoryGridStyleConstants.gridSftDirectoryBoth;
    axSftDirectory1.Headers.Style = SftDirectoryHeadersStyleConstants.headersSftDirectoryButton;
    axSftDirectory1.get_ColumnEntry(0).HeaderText = "Folder";
    axSftDirectory1.get_ColumnEntry(1).HeaderText = "Full Path";
    axSftDirectory1.get_ColumnEntry(1).Contents = SftDirectoryContentsConstants.contentsSftDirectoryUser1;
    axSftDirectory1.Reload(false, false);
}

private void axSftDirectory1_UserContents(object sender, AxSftDirectoryLib30._ISftDirectoryEvents_UserContentsEvent e)
{
    if (e.contents == SftDirectoryContentsConstants.contentsSftDirectoryUser1) {
        e.userString = e.folder.Path;
    }
}

C++

    m_vDir1->ColumnEntry[0]->HeaderText = _T("Folder");
    m_vDir1->ColumnEntry[1]->HeaderText = _T("Full Path");
    m_vDir1->ColumnEntry[1]->Contents = contentsSftDirectoryUser1;
    m_vDir1->Reload(VARIANT_FALSE, VARIANT_FALSE);

    return TRUE;  // return TRUE  unless you set the focus to a control
}

void CUserContentsDlg::OnUserContentsSftDirectory1(LPDISPATCH Folder, long Contents, BSTR FAR* UserString)
{
    ISftDirectoryFolderPtr pFolder = Folder;

    if (Contents == contentsSftDirectoryUser1) {
        *UserString = SysAllocString(pFolder->Path);
    }
}

See Also SftDirectory Object | Object Hierarchy


Last Updated 08/13/2020 - (email)
© 2024 Softel vdm, Inc.