# Determine the Current Header or Footer

> TX Text Control .NET for Windows Forms lacks a direct property to identify the active header or footer at the input position. This C# workaround uses HeaderFooterActivated and HeaderFooterDeactivated events to track state, then calls Focus to retrigger the activation event.

- **Author:** Bjoern Meyer
- **Published:** 2006-08-11
- **Modified:** 2026-03-05
- **Description:** TX Text Control .NET for Windows Forms lacks a direct property to identify the active header or footer at the input position. This C# workaround uses HeaderFooterActivated and HeaderFooterDeactivated events to track state, then calls Focus to retrigger the activation event.
- **2 min read** (207 words)
- **Tags:**
  - .NET
  - Sample
- **Web URL:** https://www.textcontrol.com/blog/2006/08/11/determine-the-current-header-or-footer/
- **LLMs URL:** https://www.textcontrol.com/blog/2006/08/11/determine-the-current-header-or-footer/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2006/08/11/determine-the-current-header-or-footer/llms-full.txt

---

TX Text Control ActiveX provides the property *HeaderFooterAtInputPos* to determine the header or footer at the current input position. This is necessary as the *HeaderFooterDeactivated* event is also fired, if TX Text Control loses the focus. To solve this with TX Text Control .NET for Windows Forms, a small trick can be used.

By setting the focus back to TX Text Control, the *HeaderFooterActivated* event is fired. This event can be used to update a global variable that holds the current active header state.

```
string activeHeader;

private void textControl1_HeaderFooterActivated(object sender, TXTextControl.HeaderFooterEventArgs e)
{
    activeHeader = e.HeaderFooter.Type.ToString();
}

private void textControl1_HeaderFooterDeactivated(object sender, TXTextControl.HeaderFooterEventArgs e)
{
    activeHeader = null;
}
```

Now, we can use this state variable in a small function that returns true, if a header band is currently active:

```
private bool isHeaderActive()
{
    textControl1.Focus();
    if(activeHeader != null)
            return true;
    else
            return false;
}
```

This function can be called, if you need to know whether a header or footer is active or not:

```
private void button1_Click(object sender, System.EventArgs e)
{
    if(isHeaderActive() == false)
        MessageBox.Show("No header / footer is active");
    else
        MessageBox.Show(activeHeader + " is active");
}
```

Feel free to contact me, if you have any questions or would like to discuss this little trick.

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [Create a Table of Contents in Windows Forms using C#](https://www.textcontrol.com/blog/2023/01/23/create-toc-in-windows-forms/llms.txt)
- [Two Ways to Restart Numbered Lists in TX Text Control](https://www.textcontrol.com/blog/2021/11/03/two-ways-to-restart-numbered-lists/llms.txt)
- [Paste Special: The Easy Way to Implement](https://www.textcontrol.com/blog/2009/09/07/paste-special-the-easy-way-to-implement/llms.txt)
- [How to Remove All Section Breaks in a Document?](https://www.textcontrol.com/blog/2009/05/14/how-to-remove-all-section-breaks-in-a-document/llms.txt)
- [Batch Printing: How to Print Documents in One Print Job](https://www.textcontrol.com/blog/2009/03/20/batch-printing-how-to-print-documents-in-one-print-job/llms.txt)
- [Removing TextFields in a Loop](https://www.textcontrol.com/blog/2009/03/12/removing-textfields-in-a-loop/llms.txt)
- [Creating a Table of Contents (TOC) Using TX Text Control](https://www.textcontrol.com/blog/2009/02/02/creating-a-table-of-contents-toc-using-tx-text-control/llms.txt)
- [Rendering TX Text Control's Content to a DataGridViewCell](https://www.textcontrol.com/blog/2009/01/20/rendering-tx-text-controls-content-to-a-datagridviewcell/llms.txt)
- [Revised Sample: Converting Text to a Table](https://www.textcontrol.com/blog/2009/01/07/revised-sample-converting-text-to-a-table/llms.txt)
- [New Sample: Printing to Different Paper Trays](https://www.textcontrol.com/blog/2008/10/08/new-sample-printing-to-different-paper-trays/llms.txt)
- [Is the Current Input Position Currently Visible?](https://www.textcontrol.com/blog/2008/09/04/is-the-current-input-position-currently-visible/llms.txt)
- [New Sample: Implementing a 'paste Special' Dialog Box](https://www.textcontrol.com/blog/2008/07/10/new-sample-implementing-a-paste-special-dialog-box/llms.txt)
- [The ParagraphStyle and InlineStyle Constructor Unreveled](https://www.textcontrol.com/blog/2008/06/24/the-paragraphstyle-and-inlinestyle-constructor-unreveled/llms.txt)
- [Searching with C# Escape Sequences](https://www.textcontrol.com/blog/2008/05/29/searching-with-c-escape-sequences/llms.txt)
- [Removing Empty Tables](https://www.textcontrol.com/blog/2008/05/27/removing-empty-tables/llms.txt)
- [Manipulating the Selection Object](https://www.textcontrol.com/blog/2008/05/26/manipulating-the-selection-object/llms.txt)
- [Casting TextField Derivatives](https://www.textcontrol.com/blog/2008/05/23/casting-textfield-derivatives/llms.txt)
- [Resize Images to Fit into Page](https://www.textcontrol.com/blog/2008/05/08/resize-images-to-fit-into-page/llms.txt)
- [Printing into a PrintPreview Control](https://www.textcontrol.com/blog/2007/08/10/printing-into-a-printpreview-control/llms.txt)
- [Drag And Drop Images into TX Text Control .NET for Windows Forms](https://www.textcontrol.com/blog/2007/08/09/drag-and-drop-images-into-tx-text-control-net-for-windows-forms/llms.txt)
- [New Sample: Restarting a Numbered List](https://www.textcontrol.com/blog/2007/08/08/new-sample-restarting-a-numbered-list/llms.txt)
- [Is There a Table at the Current Mouse Position?](https://www.textcontrol.com/blog/2007/06/22/is-there-a-table-at-the-current-mouse-position/llms.txt)
- [Apply a Boxed Frame Style to Selected Cells](https://www.textcontrol.com/blog/2007/06/12/apply-a-boxed-frame-style-to-selected-cells/llms.txt)
- [Copy All Styles from One TextControl into Another](https://www.textcontrol.com/blog/2007/05/31/copy-all-styles-from-one-textcontrol-into-another/llms.txt)
- [Show Image Anchor Positions Using GDI+](https://www.textcontrol.com/blog/2007/04/25/show-image-anchor-positions-using-gdi/llms.txt)
