TX Text Control Blog

Is there a table at the current mouse position?

Blogged by Björn Meyer on June 22, 2007 and tagged with samples, .net.

In our sample applications, we show how to open a context menu for table properties when the current input position is inside a table. Sometimes, however, it is necessary to open a context menu when the input position is not inside a table. The following source code illustrates how to achieve this.We can use the InputPosition class to set the caret to the current mouse position. This is especially important, if the right mouse button is used for context menus, as is usually the case.The input position is not automatically set to the mouse position.The return values of the mouse event must be converted to twips to match the required unit of the InputPosition class. The Tables.GetItem() method is used to check whether there is a table at the current input position or not.

private void textControl1_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { textControl1.InputPosition = new TXTextControl.InputPosition(new Point(Convert.ToInt32(e.X * dpiX), Convert.ToInt32(e.Y * dpiX))); if (textControl1.Tables.GetItem() != null) MessageBox.Show("Table"); } } float dpiX = 15; private void Form1_Paint(object sender, PaintEventArgs e) { dpiX = 1440 / e.Graphics.DpiX; }
 
 
User Contributed Note

User Contributed Note by photoshop dersleri on February 17, 2008 at 2:14:45 PM CET

thank you
User Contributed Note

User Contributed Note by Jacques Lefebvre on April 22, 2010 at 2:11:42 PM CEST

is 1440 the screen size? and why don't you do the Y using DpiY? Thanks.