Introduction
The are various ways to design a UI that helps users to extract specific information from the database. This tool whose UI design is similar to the queries windows in TFS helps users to extract specific data by helping the user to create or form a query.
Background
This idea is similar to the query tools available in SQL server and TFS, but it is customized to the user's needs.
Using the Code
The Query tool hosts various controls in the grid, which get added on the fly while the user clicks through each of the cells, but still makes sure the user doesn't end up creating a garbled query.
Event based Asynchronous programming is done in case the query execution turnaround time is more, so for good user experience a progress bar is added to show the user that the query is been processed.
Interesting articles would be the following ones from MSDN:
How to: Host Controls in Windows Forms DataGridView Cells
This tools hosts Calender
, ComboBox
and Treeview
controls in a ComboBox
.
How to: Wrap a Windows Forms Control with ToolStripControlHost
Safe, Simple Multithreading in Windows Forms
public class CalendarColumn : DataGridViewColumn
{
}
public class CalendarCell : DataGridViewTextBoxCell
{
}
class CalendarEditingControl : DateTimePicker, IDataGridViewEditingControl
{
}
class ShowProgressDelegate : MulticastDelegate {
public void Invoke(int digits);
public void BeginInvoke(string txtDisplay, AsyncCallback callback,
object asyncState);
public void EndInvoke(IAsyncResult result);
}
public class ToolStripControlHost : ToolStripItem
Points of Interest
While developing the tool, it helped me in learning the various properties of control, hosting those controls in the grid view and do asynchronous programming.
History
- 10th October, 2008: Initial release
This is just a fast track beginning, the future release would include all the fixes and an additional feature to group the clause.