12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System;
- using System.Windows.Forms;
- using System.Drawing;
- using FastReport.Utils;
- using FastReport.Data;
- using System.ComponentModel;
- namespace FastReport.Controls
- {
- internal class DataColumnDropDown : ToolStripDropDown
- {
- private ToolStripControlHost host;
- private DataTreeView tree;
- public event EventHandler ColumnSelected;
- public Control Owner { get; set; }
- public DataTreeView DataTree
- {
- get { return tree; }
- }
- public DataSourceBase DataSource
- {
- get { return tree.DataSource; }
- set { tree.DataSource = value; }
- }
- public string Column
- {
- get { return tree.SelectedItem; }
- set { tree.SelectedItem = value; }
- }
- private void tree_AfterSelect(object sender, TreeViewEventArgs e)
- {
- if (tree.SelectedItemType == DataTreeSelectedItemType.None || tree.SelectedItem != "")
- {
- Close();
- ColumnSelected?.Invoke(this, EventArgs.Empty);
- }
- }
- public void CreateNodes(Report report)
- {
- tree.CreateNodes(report.Dictionary);
- }
- public void SetSize(int width, int height)
- {
- tree.Size = new Size(width - 2, height);
- }
- protected override void OnOpening(CancelEventArgs e)
- {
- base.OnOpening(e);
- if (Owner != null)
- {
- #if WPF
- if (Owner.DeviceDpi != tree.DeviceDpi)
- {
- tree.Width = tree.Width * tree.DeviceDpi / Owner.DeviceDpi;
- tree.Font = DrawUtils.DefaultFont;
- }
- else
- #endif
- tree.Font = Owner.Font;
- tree.ImageList = Owner.GetImages();
- }
- }
- public DataColumnDropDown()
- {
- tree = new DataTreeView();
- tree.Size = new Size(200, 250);
- tree.BorderStyle = BorderStyle.None;
- tree.HideSelection = false;
- tree.ShowEnabledOnly = true;
- tree.ShowNone = true;
- tree.ShowRelations = true;
- tree.ShowVariables = false;
- tree.ShowParameters = false;
- tree.Font = DrawUtils.DefaultFont;
- tree.AfterSelect += tree_AfterSelect;
- host = new ToolStripControlHost(tree);
- Items.Add(host);
- }
- }
- }
|