C# Class SIL.FieldWorks.Common.Controls.DhListView

Derived from ListView, this class supports notifying the browse view when resizing the columns. This class holds the headers that show above columns of data that BrowseViewer knows about.
Inheritance: System.Windows.Forms.ListView, IFWDisposable
ファイルを表示 Open project: sillsdev/FieldWorks Class Usage Examples

Private Properties

Property Type Description
DhListView_DrawColumnHeader void
GetArrowBitmap System.Drawing.Bitmap
GetColumnIndexFromMousePosition int
HandleColumnClick void
HandleColumnReordered void
IsThisColumnChangeAllowable bool
ListView_ColumnWidthChanged void
ListView_ColumnWidthChanging void
m_timer_Tick void

Public Methods

Method Description
CheckDisposed ( ) : void

Check to see if the object has been disposed. All public Properties and Methods should call this before doing anything else.

DhListView ( BrowseViewer bv ) : System

Create one and set the browse view it belongs to.

ShowHeaderIcon ( int columnIndex, SortOrder sortOrder, ArrowSize size ) : void

Set the header icon. (Thanks to a post by Eddie Velasquez.)

Protected Methods

Method Description
Dispose ( bool disposing ) : void

Releases the unmanaged resources used by the T:System.Windows.Forms.ListView and optionally releases the managed resources.

OnColumnRightClick ( int iItem, Point ptLoc ) : void

Handle a right click event in a column header.

OnHandleCreated ( EventArgs e ) : void

OnParentVisibleChanged ( EventArgs e ) : void
WndProc ( Message &m ) : void

Override of WndProc to handle the context menu or column resize on column headers. Necessary because ListView eats almost all mouse events, and does not provide any that can be used to handling right clicks in the header. Also couldn't use class wizard to handle WM_NOTIFY because it won't add HDN_ITEMCLICKA and HDN_DIVIDERDBLCLICKW

Private Methods

Method Description
DhListView_DrawColumnHeader ( object sender, DrawListViewColumnHeaderEventArgs e ) : void
GetArrowBitmap ( ArrowType type, ArrowSize size ) : Bitmap

Create up/down icon (Adapted from a post by Eddie Velasquez.)

GetColumnIndexFromMousePosition ( Point pt ) : int
HandleColumnClick ( object sender, System.Windows.Forms.ColumnClickEventArgs e ) : void
HandleColumnReordered ( object sender, System.Windows.Forms.ColumnReorderedEventArgs e ) : void
IsThisColumnChangeAllowable ( int columnIndex, int currentWidth, int newWidth ) : bool

Determine if a column width change is acceptable.

ListView_ColumnWidthChanged ( Object sender, System.Windows.Forms.ColumnWidthChangedEventArgs e ) : void
ListView_ColumnWidthChanging ( Object sender, System.Windows.Forms.ColumnWidthChangingEventArgs e ) : void

Reject inappropriate column width changes. Helps to fix FWNX-1018. No column should be so small that compensating for ascending/descending icon size (m_imgList.ImageSize.Width) in DhListView_DrawColumnHeader would result in a negative width.

m_timer_Tick ( object sender, EventArgs e ) : void

Method Details

CheckDisposed() public method

Check to see if the object has been disposed. All public Properties and Methods should call this before doing anything else.
public CheckDisposed ( ) : void
return void

DhListView() public method

Create one and set the browse view it belongs to.
public DhListView ( BrowseViewer bv ) : System
bv BrowseViewer
return System

Dispose() protected method

Releases the unmanaged resources used by the T:System.Windows.Forms.ListView and optionally releases the managed resources.
protected Dispose ( bool disposing ) : void
disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources.
return void

OnColumnRightClick() protected method

Handle a right click event in a column header.
protected OnColumnRightClick ( int iItem, Point ptLoc ) : void
iItem int The i item.
ptLoc Point The pt loc.
return void

OnHandleCreated() protected method

protected OnHandleCreated ( EventArgs e ) : void
e System.EventArgs An that contains the event data.
return void

OnParentVisibleChanged() protected method

protected OnParentVisibleChanged ( EventArgs e ) : void
e System.EventArgs
return void

ShowHeaderIcon() public method

Set the header icon. (Thanks to a post by Eddie Velasquez.)
public ShowHeaderIcon ( int columnIndex, SortOrder sortOrder, ArrowSize size ) : void
columnIndex int Index of the column.
sortOrder SortOrder The sort order.
size ArrowSize The size.
return void

WndProc() protected method

Override of WndProc to handle the context menu or column resize on column headers. Necessary because ListView eats almost all mouse events, and does not provide any that can be used to handling right clicks in the header. Also couldn't use class wizard to handle WM_NOTIFY because it won't add HDN_ITEMCLICKA and HDN_DIVIDERDBLCLICKW
protected WndProc ( Message &m ) : void
m System.Windows.Forms.Message The Windows Message to process
return void