void SetPos(ref Point lp, Label lab, Point tp, ExtendedControls.ExtTextBox box, int vspacing, int i) { lab.Location = lp; box.Location = tp; box.Tag = lab.Tag = i; lab.Visible = box.Visible = true; lp.Y += vspacing; }
private void Value_Click(object sender, EventArgs e) { ExtendedControls.ExtTextBox b = sender as ExtendedControls.ExtTextBox; Group g = (Group)b.Tag; if (b.ReadOnly) { ActionConfig_Clicked(g.config, null); } }
private void Value_TextChanged(object sender, EventArgs e) { ExtendedControls.ExtTextBox tb = sender as ExtendedControls.ExtTextBox; Group g = (Group)tb.Tag; ActionBase curact = curprog.GetStep(groups.IndexOf(g)); if (tb.Enabled && curact != null) { curact.UpdateUserData(tb.Text); } }
public void Init(Condition c, Icon ic, ToolTip toolTip) { cd = c; // point to common condition. We only change the fields, not the cd.action/actiondata, and we don't replace it. Icon = ic; // layed out for 12 point. Requires a 28 pixel area to sit in panelConditionType = new ExtendedControls.ExtPanelDropDown(); panelConditionType.Location = new Point(0, 0); panelConditionType.Size = new Size(this.Width, 28); // outer panel aligns with this UC panelConditionType.SelectedIndexChanged += PanelConditionType_SelectedIndexChanged; toolTip.SetToolTip(panelConditionType, "Use the selector (click on bottom right arrow) to select condition class type"); textBoxCondition = new ExtendedControls.ExtTextBox(); textBoxCondition.Location = new Point(panelxmargin, panelymargin); textBoxCondition.Size = new Size(this.Width - 8 - panelxmargin * 2, 24); // 8 for selector textBoxCondition.ReadOnly = true; textBoxCondition.Click += Condition_Click; textBoxCondition.SetTipDynamically(toolTip, "Click to edit the condition that controls when the event is generated"); buttonKeys = new ExtendedControls.ExtButton(); buttonKeys.Location = textBoxCondition.Location; buttonKeys.Size = textBoxCondition.Size; buttonKeys.Click += Keypress_Click; toolTip.SetToolTip(buttonKeys, "Click to set the key list that associated this event with key presses"); labelAlwaysTrue = new Label(); labelAlwaysTrue.Location = new Point(panelxmargin, panelymargin + 1); labelAlwaysTrue.Size = textBoxCondition.Size; labelAlwaysTrue.Text = "Always Action/True"; labelAlwaysFalse = new Label(); labelAlwaysFalse.Location = new Point(panelxmargin, panelymargin + 1); labelAlwaysFalse.Size = textBoxCondition.Size; labelAlwaysFalse.Text = "Never Action/False"; SuspendLayout(); panelConditionType.Controls.Add(textBoxCondition); panelConditionType.Controls.Add(labelAlwaysTrue); panelConditionType.Controls.Add(labelAlwaysFalse); panelConditionType.Controls.Add(buttonKeys); Controls.Add(panelConditionType); SelectRepresentation(); ResumeLayout(); }
void SetValue(ExtendedControls.ExtTextBox value, ActionBase step) { value.Enabled = false; value.Text = ""; value.ReadOnly = true; if (step != null) { value.ReadOnly = !step.AllowDirectEditingOfUserData; value.Visible = step.DisplayedUserData != null; if (step.DisplayedUserData != null) { value.Text = step.DisplayedUserData; } } value.Enabled = true; }
void UpdateSkinny() { if (IsTransparent && (Selection & (1 << BitSelSkinny)) != 0) { foreach (Control c in Controls) { if (c is ExtendedControls.ExtTextBox) { ExtendedControls.ExtTextBox b = c as ExtendedControls.ExtTextBox; b.ControlBackground = Color.Red; b.BorderStyle = BorderStyle.None; b.BorderColor = Color.Transparent; } } } else { EDDTheme.Instance.ApplyToControls(this); } }
public override void Init(Condition cond, List <string> events, ActionCoreController cp, string appfolder, ActionFile actionfile, System.Func <string, List <BaseUtils.TypeHelpers.PropertyNameInfo> > func, Icon ic, ToolTip toolTip) { cd = cond; // on creation, the cond with be set to onVoice with one condition, checked in ActionController.cs:SetPackEditor.. // layed out for 12 point. UC below require 28 point area textBoxInput = new ExtendedControls.ExtTextBox(); textBoxInput.Location = new Point(panelxmargin, panelymargin); textBoxInput.Size = new Size(356, 24); // manually matched to size of eventprogramcondition bits textBoxInput.Text = cd.Fields[0].MatchString; textBoxInput.TextChanged += TextBoxInput_TextChanged; textBoxInput.SetTipDynamically(toolTip, "Enter the voice input to recognise. Multiple phrases seperate with semicolons"); Controls.Add(textBoxInput); ActionProgram p = cond.Action.HasChars() ? actionfile.ProgramList.Get(cond.Action) : null; ActionProgram.ProgramConditionClass classifier = p != null ? p.ProgramClass : ActionProgram.ProgramConditionClass.KeySay; ucprog = new ActionPackEditProgram(); ucprog.Location = new Point(textBoxInput.Right + 16, 0); ucprog.Size = new Size(400, 28); // init all the panels to 0/this height, select widths ucprog.Init(actionfile, cond, cp, appfolder, ic, toolTip, classifier); ucprog.onEditKeys = onEditKeys; ucprog.onEditSay = onEditSay; ucprog.onAdditionalNames += () => { return(func(cd.EventName)); }; ucprog.SuggestedName += () => { string textparse = (textBoxInput.Text.Length > 0 && !textBoxInput.Text.Equals("?")) ? ("_" + textBoxInput.Text.Split(';')[0].SafeVariableString()) : ""; return("VoiceInput" + textparse); }; ucprog.RefreshEvent += () => { RefreshIt(); }; Controls.Add(ucprog); }
private void Init(Icon icon, System.Drawing.Size minsize, System.Drawing.Size maxsize, System.Drawing.Point pos, string caption, string lname, Object callertag, bool closeicon, HorizontalAlignment?halign, ControlHelpersStaticFunc.VerticalAlignment?valign, AutoScaleMode asm, bool transparent) { this.logicalname = lname; // passed back to caller via trigger this.callertag = callertag; // passed back to caller via trigger this.halign = halign; this.valign = valign; this.minsize = minsize; // set min size window this.maxsize = maxsize; ITheme theme = ThemeableFormsInstance.Instance; FormBorderStyle = FormBorderStyle.FixedDialog; //outer = new ExtPanelScroll() { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle, Margin = new Padding(0), Padding = new Padding(0) }; outer = new ExtPanelScroll() { Name = "Outer", BorderStyle = BorderStyle.FixedSingle, Margin = new Padding(0), Padding = new Padding(0) }; outer.MouseDown += FormMouseDown; outer.MouseUp += FormMouseUp; Controls.Add(outer); ExtScrollBar scr = new ExtScrollBar(); scr.HideScrollBar = true; outer.Controls.Add(scr); this.Text = caption; int yoffset = 0; // adjustment to move controls up if windows frame present. if (theme.WindowsFrame && !ForceNoBorder) { yoffset = int.MaxValue; for (int i = 0; i < entries.Count; i++) // find minimum control Y { yoffset = Math.Min(yoffset, entries[i].pos.Y); } yoffset -= 8; // place X spaces below top } else { titlelabel = new Label() { Name = "title", Left = 4, Top = 8, Width = 10, Text = caption, AutoSize = true }; // autosize it, and set width small so it does not mess up the computation below titlelabel.MouseDown += FormMouseDown; titlelabel.MouseUp += FormMouseUp; titlelabel.Name = "title"; outer.Controls.Add(titlelabel); if (closeicon) { closebutton = new ExtButtonDrawn() { Name = "closebut", Size = new Size(18, 18), Location = new Point(0, 0) }; // purposely at top left to make it not contribute to overall size closebutton.ImageSelected = ExtButtonDrawn.ImageType.Close; closebutton.Click += (sender, f) => { if (!ProgClose) { Trigger?.Invoke(logicalname, "Close", callertag); } }; outer.Controls.Add(closebutton); // add now so it gets themed } } ToolTip tt = new ToolTip(components); tt.ShowAlways = true; for (int i = 0; i < entries.Count; i++) { Entry ent = entries[i]; Control c = ent.controltype != null ? (Control)Activator.CreateInstance(ent.controltype) : ent.control; ent.control = c; c.Size = ent.size; c.Location = new Point(ent.pos.X, ent.pos.Y - yoffset); c.Name = ent.controlname; if (!(ent.text == null || c is ExtendedControls.ExtComboBox || c is ExtendedControls.ExtDateTimePicker || c is ExtendedControls.NumberBoxDouble || c is ExtendedControls.NumberBoxLong)) // everything but get text { c.Text = ent.text; } c.Tag = ent; // point control tag at ent structure System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size + " " + c.Text); outer.Controls.Add(c); if (ent.tooltip != null) { tt.SetToolTip(c, ent.tooltip); } if (c is Label) { Label l = c as Label; if (ent.textalign.HasValue) { l.TextAlign = ent.textalign.Value; } } else if (c is ExtendedControls.ExtButton) { ExtendedControls.ExtButton b = c as ExtendedControls.ExtButton; if (ent.textalign.HasValue) { b.TextAlign = ent.textalign.Value; } b.Click += (sender, ev) => { if (!ProgClose) { Entry en = (Entry)(((Control)sender).Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.NumberBoxDouble) { ExtendedControls.NumberBoxDouble cb = c as ExtendedControls.NumberBoxDouble; cb.Minimum = ent.numberboxdoubleminimum; cb.Maximum = ent.numberboxdoublemaximum; double?v = ent.text.InvariantParseDoubleNull(); cb.Value = v.HasValue ? v.Value : cb.Minimum; if (ent.numberboxformat != null) { cb.Format = ent.numberboxformat; } cb.ReturnPressed += (box) => { SwallowReturn = false; if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } return(SwallowReturn); }; cb.ValidityChanged += (box, s) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.NumberBoxLong) { ExtendedControls.NumberBoxLong cb = c as ExtendedControls.NumberBoxLong; cb.Minimum = ent.numberboxlongminimum; cb.Maximum = ent.numberboxlongmaximum; long?v = ent.text.InvariantParseLongNull(); cb.Value = v.HasValue ? v.Value : cb.Minimum; if (ent.numberboxformat != null) { cb.Format = ent.numberboxformat; } cb.ReturnPressed += (box) => { SwallowReturn = false; if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } return(SwallowReturn); }; cb.ValidityChanged += (box, s) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.ExtTextBox) { ExtendedControls.ExtTextBox tb = c as ExtendedControls.ExtTextBox; tb.Multiline = tb.WordWrap = ent.textboxmultiline; tb.Size = ent.size; // restate size in case multiline is on tb.ClearOnFirstChar = ent.clearonfirstchar; tb.ReturnPressed += (box) => { SwallowReturn = false; if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } return(SwallowReturn); }; if (tb.ClearOnFirstChar) { tb.SelectEnd(); } } else if (c is ExtendedControls.ExtCheckBox) { ExtendedControls.ExtCheckBox cb = c as ExtendedControls.ExtCheckBox; cb.Checked = ent.checkboxchecked; cb.Click += (sender, ev) => { if (!ProgClose) { Entry en = (Entry)(((Control)sender).Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } if (c is ExtendedControls.ExtDateTimePicker) { ExtendedControls.ExtDateTimePicker dt = c as ExtendedControls.ExtDateTimePicker; DateTime t; if (DateTime.TryParse(ent.text, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out t)) // assume local, so no conversion { dt.Value = t; } switch (ent.customdateformat.ToLowerInvariant()) { case "short": dt.Format = DateTimePickerFormat.Short; break; case "long": dt.Format = DateTimePickerFormat.Long; break; case "time": dt.Format = DateTimePickerFormat.Time; break; default: dt.CustomFormat = ent.customdateformat; break; } } if (c is ExtendedControls.ExtComboBox) { ExtendedControls.ExtComboBox cb = c as ExtendedControls.ExtComboBox; cb.Items.AddRange(ent.comboboxitems.Split(',')); if (cb.Items.Contains(ent.text)) { cb.SelectedItem = ent.text; } cb.SelectedIndexChanged += (sender, ev) => { Control ctr = (Control)sender; if (ctr.Enabled && !ProgClose) { Entry en = (Entry)(ctr.Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } } ShowInTaskbar = false; this.Icon = icon; this.AutoScaleMode = asm; // outer.FindMaxSubControlArea(0, 0,null,true); // debug //this.DumpTree(0); theme.ApplyStd(this, ForceNoBorder); //theme.Apply(this, new Font("ms Sans Serif", 16f)); //this.DumpTree(0); if (transparent) { TransparencyKey = BackColor; } for (int i = 0; i < entries.Count; i++) // post scale any controls which ask for different font ratio sizes { if (entries[i].PostThemeFontScale != 1.0f) { entries[i].control.Font = new Font(entries[i].control.Font.Name, entries[i].control.Font.SizeInPoints * entries[i].PostThemeFontScale); } } // position StartPosition = FormStartPosition.Manual; this.Location = pos; //System.Diagnostics.Debug.WriteLine("Bounds " + Bounds + " ClientRect " + ClientRectangle); //System.Diagnostics.Debug.WriteLine("Outer Bounds " + outer.Bounds + " ClientRect " + outer.ClientRectangle); }
public void Init(ActionFile af, Condition c, ActionCoreController ac, string apf, Icon i, ToolTip toolTip, ActionProgram.ProgramConditionClass cls) { cd = c; // point at common condition, we never new it, just update action data/action actionfile = af; actioncorecontroller = ac; applicationfolder = apf; Icon = i; classifier = cls; progmajortype = new ExtendedControls.ExtPanelDropDown(); progmajortype.Items.AddRange(new string[] { "Key", "Say", "Key+Say", "Full Program" }); indextoclassifier = new ActionProgram.ProgramConditionClass[] { ActionProgram.ProgramConditionClass.Key, ActionProgram.ProgramConditionClass.Say, ActionProgram.ProgramConditionClass.KeySay, ActionProgram.ProgramConditionClass.Full }; progmajortype.Location = new Point(0, 0); progmajortype.Size = new Size(this.Width, this.Height); // outer panel aligns with this UC progmajortype.SelectedIndexChanged += PanelType_SelectedIndexChanged; toolTip.SetToolTip(progmajortype, "Use the selector (click on bottom right arrow) to select program class type"); proglist = new ExtendedControls.ExtComboBox(); proglist.Items.Add("New"); proglist.Items.AddRange(actionfile.actionprogramlist.GetActionProgramList()); proglist.Location = new Point(panelxmargin, panelymargin); proglist.Size = new Size((this.Width - 24 - 8 - 8 - 8 - panelxmargin * 2) / 2, 24); // 24 button, 8+8 gaps, 8 for selector proglist.DropDownHeight = 400; proglist.DropDownWidth = proglist.Width * 3 / 2; proglist.SelectedIndexChanged += Proglist_SelectedIndexChanged; proglist.SetTipDynamically(toolTip, "Select program to associate with this event"); progedit = new ExtendedControls.ExtButton(); progedit.Text = "P"; progedit.Location = new Point(proglist.Right + 8, panelymargin); progedit.Size = new Size(24, 24); progedit.Click += Progedit_Click; toolTip.SetToolTip(progedit, "Edit associated program"); paras = new ExtendedControls.ExtTextBox(); paras.Text = (cd.actiondata != null) ? cd.actiondata : ""; paras.Location = new Point(progedit.Right + 8, panelymargin + 2); paras.Size = proglist.Size; paras.ReadOnly = true; paras.Click += Paras_Click; paras.SetTipDynamically(toolTip, "Click to enter parameters to pass to program"); buttonKeys = new ExtendedControls.ExtButton(); buttonKeys.Location = proglist.Location; buttonKeys.Size = new Size((this.Width - 8 - 8 - panelxmargin * 2) / 2, 24); buttonKeys.Click += Keypress_Click; toolTip.SetToolTip(buttonKeys, "Click to define keystrokes to send"); buttonSay = new ExtendedControls.ExtButton(); buttonSay.Location = new Point(buttonKeys.Right + 8, buttonKeys.Top); buttonSay.Size = buttonKeys.Size; buttonSay.Click += Saypress_Click; toolTip.SetToolTip(buttonSay, "Click to set speech to say"); SuspendLayout(); progmajortype.Controls.Add(proglist); progmajortype.Controls.Add(progedit); progmajortype.Controls.Add(paras); progmajortype.Controls.Add(buttonKeys); progmajortype.Controls.Add(buttonSay); Controls.Add(progmajortype); UpdateControls(); ResumeLayout(); }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.dataViewScrollerPanel = new ExtendedControls.ExtPanelDataGridViewScroll(); this.dataGridViewMC = new System.Windows.Forms.DataGridView(); this.NameCol = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ShortName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Category = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Type = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Number = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Price = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.vScrollBarCustomMC = new ExtendedControls.ExtScrollBar(); this.panelButtons = new System.Windows.Forms.Panel(); this.buttonFilter = new ExtendedControls.ExtButton(); this.textBoxItems2 = new ExtendedControls.ExtTextBox(); this.textBoxItems1 = new ExtendedControls.ExtTextBox(); this.labelItems2 = new System.Windows.Forms.Label(); this.labelItems1 = new System.Windows.Forms.Label(); this.checkBoxClear = new ExtendedControls.ExtCheckBox(); this.toolTip = new System.Windows.Forms.ToolTip(this.components); this.dataViewScrollerPanel.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewMC)).BeginInit(); this.panelButtons.SuspendLayout(); this.SuspendLayout(); // // dataViewScrollerPanel // this.dataViewScrollerPanel.Controls.Add(this.dataGridViewMC); this.dataViewScrollerPanel.Controls.Add(this.vScrollBarCustomMC); this.dataViewScrollerPanel.Dock = System.Windows.Forms.DockStyle.Fill; this.dataViewScrollerPanel.InternalMargin = new System.Windows.Forms.Padding(0); this.dataViewScrollerPanel.Location = new System.Drawing.Point(0, 28); this.dataViewScrollerPanel.Name = "dataViewScrollerPanel"; this.dataViewScrollerPanel.ScrollBarWidth = 20; this.dataViewScrollerPanel.Size = new System.Drawing.Size(704, 536); this.dataViewScrollerPanel.TabIndex = 0; this.dataViewScrollerPanel.VerticalScrollBarDockRight = true; // // dataGridViewMC // this.dataGridViewMC.AllowUserToAddRows = false; this.dataGridViewMC.AllowUserToDeleteRows = false; this.dataGridViewMC.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dataGridViewMC.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridViewMC.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.NameCol, this.ShortName, this.Category, this.Type, this.Number, this.Price}); this.dataGridViewMC.Location = new System.Drawing.Point(0, 0); this.dataGridViewMC.Name = "dataGridViewMC"; this.dataGridViewMC.RowHeadersVisible = false; this.dataGridViewMC.ScrollBars = System.Windows.Forms.ScrollBars.None; this.dataGridViewMC.Size = new System.Drawing.Size(684, 536); this.dataGridViewMC.TabIndex = 1; this.dataGridViewMC.SortCompare += new System.Windows.Forms.DataGridViewSortCompareEventHandler(this.dataGridViewMC_SortCompare); // // NameCol // this.NameCol.HeaderText = "Name"; this.NameCol.MinimumWidth = 50; this.NameCol.Name = "NameCol"; this.NameCol.ReadOnly = true; // // ShortName // this.ShortName.HeaderText = "Abv"; this.ShortName.MinimumWidth = 25; this.ShortName.Name = "ShortName"; this.ShortName.ReadOnly = true; // // Category // this.Category.HeaderText = "Category"; this.Category.MinimumWidth = 50; this.Category.Name = "Category"; this.Category.ReadOnly = true; // // Type // this.Type.HeaderText = "Type"; this.Type.MinimumWidth = 50; this.Type.Name = "Type"; this.Type.ReadOnly = true; // // Number // this.Number.HeaderText = "Number"; this.Number.MinimumWidth = 50; this.Number.Name = "Number"; this.Number.ReadOnly = true; // // Price // this.Price.HeaderText = "Avg. Price"; this.Price.MinimumWidth = 50; this.Price.Name = "Price"; this.Price.ReadOnly = true; // // vScrollBarCustomMC // this.vScrollBarCustomMC.ArrowBorderColor = System.Drawing.Color.LightBlue; this.vScrollBarCustomMC.ArrowButtonColor = System.Drawing.Color.LightGray; this.vScrollBarCustomMC.ArrowColorScaling = 0.5F; this.vScrollBarCustomMC.ArrowDownDrawAngle = 270F; this.vScrollBarCustomMC.ArrowUpDrawAngle = 90F; this.vScrollBarCustomMC.BorderColor = System.Drawing.Color.White; this.vScrollBarCustomMC.FlatStyle = System.Windows.Forms.FlatStyle.System; this.vScrollBarCustomMC.HideScrollBar = false; this.vScrollBarCustomMC.LargeChange = 0; this.vScrollBarCustomMC.Location = new System.Drawing.Point(684, 21); this.vScrollBarCustomMC.Maximum = -1; this.vScrollBarCustomMC.Minimum = 0; this.vScrollBarCustomMC.MouseOverButtonColor = System.Drawing.Color.Green; this.vScrollBarCustomMC.MousePressedButtonColor = System.Drawing.Color.Red; this.vScrollBarCustomMC.Name = "vScrollBarCustomMC"; this.vScrollBarCustomMC.Size = new System.Drawing.Size(20, 515); this.vScrollBarCustomMC.SliderColor = System.Drawing.Color.DarkGray; this.vScrollBarCustomMC.SmallChange = 1; this.vScrollBarCustomMC.TabIndex = 0; this.vScrollBarCustomMC.Text = "vScrollBarCustom1"; this.vScrollBarCustomMC.ThumbBorderColor = System.Drawing.Color.Yellow; this.vScrollBarCustomMC.ThumbButtonColor = System.Drawing.Color.DarkBlue; this.vScrollBarCustomMC.ThumbColorScaling = 0.5F; this.vScrollBarCustomMC.ThumbDrawAngle = 0F; this.vScrollBarCustomMC.Value = -1; this.vScrollBarCustomMC.ValueLimited = -1; // // panelButtons // this.panelButtons.Controls.Add(this.buttonFilter); this.panelButtons.Controls.Add(this.textBoxItems2); this.panelButtons.Controls.Add(this.textBoxItems1); this.panelButtons.Controls.Add(this.labelItems2); this.panelButtons.Controls.Add(this.labelItems1); this.panelButtons.Controls.Add(this.checkBoxClear); this.panelButtons.Dock = System.Windows.Forms.DockStyle.Top; this.panelButtons.Location = new System.Drawing.Point(0, 0); this.panelButtons.Name = "panelButtons"; this.panelButtons.Size = new System.Drawing.Size(704, 28); this.panelButtons.TabIndex = 2; // // buttonFilter // this.buttonFilter.Location = new System.Drawing.Point(6, 2); this.buttonFilter.Name = "buttonFilter"; this.buttonFilter.Size = new System.Drawing.Size(75, 23); this.buttonFilter.TabIndex = 5; this.buttonFilter.Text = "Filter"; this.toolTip.SetToolTip(this.buttonFilter, "Filter out items"); this.buttonFilter.UseVisualStyleBackColor = true; this.buttonFilter.Click += new System.EventHandler(this.buttonFilter_Click); // // textBoxItems2 // this.textBoxItems2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; this.textBoxItems2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; this.textBoxItems2.BackErrorColor = System.Drawing.Color.Red; this.textBoxItems2.BorderColor = System.Drawing.Color.Transparent; this.textBoxItems2.BorderColorScaling = 0.5F; this.textBoxItems2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.textBoxItems2.ClearOnFirstChar = false; this.textBoxItems2.ControlBackground = System.Drawing.SystemColors.Control; this.textBoxItems2.InErrorCondition = false; this.textBoxItems2.Location = new System.Drawing.Point(295, 3); this.textBoxItems2.Multiline = false; this.textBoxItems2.Name = "textBoxItems2"; this.textBoxItems2.ReadOnly = false; this.textBoxItems2.ScrollBars = System.Windows.Forms.ScrollBars.None; this.textBoxItems2.SelectionLength = 0; this.textBoxItems2.SelectionStart = 0; this.textBoxItems2.Size = new System.Drawing.Size(75, 20); this.textBoxItems2.TabIndex = 4; this.textBoxItems2.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.toolTip.SetToolTip(this.textBoxItems2, "Count of Items"); this.textBoxItems2.WordWrap = true; // // textBoxItems1 // this.textBoxItems1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None; this.textBoxItems1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None; this.textBoxItems1.BackErrorColor = System.Drawing.Color.Red; this.textBoxItems1.BorderColor = System.Drawing.Color.Transparent; this.textBoxItems1.BorderColorScaling = 0.5F; this.textBoxItems1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.textBoxItems1.ClearOnFirstChar = false; this.textBoxItems1.ControlBackground = System.Drawing.SystemColors.Control; this.textBoxItems1.InErrorCondition = false; this.textBoxItems1.Location = new System.Drawing.Point(145, 3); this.textBoxItems1.Multiline = false; this.textBoxItems1.Name = "textBoxItems1"; this.textBoxItems1.ReadOnly = false; this.textBoxItems1.ScrollBars = System.Windows.Forms.ScrollBars.None; this.textBoxItems1.SelectionLength = 0; this.textBoxItems1.SelectionStart = 0; this.textBoxItems1.Size = new System.Drawing.Size(75, 20); this.textBoxItems1.TabIndex = 4; this.textBoxItems1.TextAlign = System.Windows.Forms.HorizontalAlignment.Left; this.toolTip.SetToolTip(this.textBoxItems1, "Count of Items"); this.textBoxItems1.WordWrap = true; // // labelItems2 // this.labelItems2.AutoSize = true; this.labelItems2.Location = new System.Drawing.Point(245, 4); this.labelItems2.Name = "labelItems2"; this.labelItems2.Size = new System.Drawing.Size(43, 13); this.labelItems2.TabIndex = 3; this.labelItems2.Text = "<code>"; // // labelItems1 // this.labelItems1.AutoSize = true; this.labelItems1.Location = new System.Drawing.Point(95, 4); this.labelItems1.Name = "labelItems1"; this.labelItems1.Size = new System.Drawing.Size(43, 13); this.labelItems1.TabIndex = 3; this.labelItems1.Text = "<code>"; // // checkBoxClear // this.checkBoxClear.AutoSize = true; this.checkBoxClear.CheckBoxColor = System.Drawing.Color.Gray; this.checkBoxClear.CheckBoxInnerColor = System.Drawing.Color.White; this.checkBoxClear.CheckColor = System.Drawing.Color.DarkBlue; this.checkBoxClear.FontNerfReduction = 0.5F; this.checkBoxClear.ImageButtonDisabledScaling = 0.5F; this.checkBoxClear.Location = new System.Drawing.Point(376, 6); this.checkBoxClear.MouseOverColor = System.Drawing.Color.CornflowerBlue; this.checkBoxClear.Name = "checkBoxClear"; this.checkBoxClear.Size = new System.Drawing.Size(116, 17); this.checkBoxClear.TabIndex = 2; this.checkBoxClear.Text = "Remove zero items"; this.checkBoxClear.TickBoxReductionSize = 10; this.toolTip.SetToolTip(this.checkBoxClear, "Remove zero items the time after they go to zero"); this.checkBoxClear.UseVisualStyleBackColor = true; // // toolTip // this.toolTip.ShowAlways = true; // // UserControlMaterialCommodities // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.dataViewScrollerPanel); this.Controls.Add(this.panelButtons); this.Name = "UserControlMaterialCommodities"; this.Size = new System.Drawing.Size(704, 564); this.dataViewScrollerPanel.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridViewMC)).EndInit(); this.panelButtons.ResumeLayout(false); this.panelButtons.PerformLayout(); this.ResumeLayout(false); }
// lab sets the items, def can be less or null public static List<string> ShowDialog(Form p, string caption, Icon ic, string[] lab, string[] def, bool multiline = false, string[] tooltips = null, int width = 600, int vspacing = -1, bool cursoratend = false) { ITheme theme = ThemeableFormsInstance.Instance; int vstart = theme.WindowsFrame ? 20 : 40; if ( vspacing == -1 ) vspacing = multiline ? 80 : 40; int lw = 100; int lx = 10; int tx = 10 + lw + 8; DraggableForm prompt = new DraggableForm() { Width = width, Height = 90 + vspacing * lab.Length + (theme.WindowsFrame ? 20 : 0), FormBorderStyle = FormBorderStyle.FixedDialog, Text = caption, StartPosition = FormStartPosition.CenterScreen, Icon = ic }; Panel outer = new Panel() { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle }; prompt.Controls.Add(outer); outer.MouseDown += (s, e) => { prompt.OnCaptionMouseDown(s as Control, e); }; outer.MouseUp += (s, e) => { prompt.OnCaptionMouseUp(s as Control, e); }; Label textLabel = new Label() { Left = lx, Top = 8, Width = prompt.Width - 50, Text = caption }; textLabel.MouseDown += (s, e) => { prompt.OnCaptionMouseDown(s as Control, e); }; textLabel.MouseUp += (s, e) => { prompt.OnCaptionMouseUp(s as Control, e); }; if (!theme.WindowsFrame) outer.Controls.Add(textLabel); Label[] lbs = new Label[lab.Length]; ExtendedControls.ExtTextBox[] tbs = new ExtendedControls.ExtTextBox[lab.Length]; ToolTip tt = new ToolTip(); tt.ShowAlways = true; int y = vstart; for (int i = 0; i < lab.Length; i++) { lbs[i] = new Label() { Left = lx, Top = y, Width = lw, Text = lab[i] }; tbs[i] = new ExtendedControls.ExtTextBox() { Left = tx, Top = y, Width = prompt.Width - 50 - tx, Text = (def != null && i < def.Length) ? def[i] : "", Multiline = multiline, // set before height! Height = vspacing - 20, ScrollBars = (multiline) ? ScrollBars.Vertical : ScrollBars.None, WordWrap = multiline }; if (cursoratend) tbs[i].Select(tbs[i].Text.Length, tbs[i].Text.Length); outer.Controls.Add(lbs[i]); outer.Controls.Add(tbs[i]); if (tooltips != null && i < tooltips.Length) { tt.SetToolTip(lbs[i], tooltips[i]); tbs[i].SetTipDynamically(tt, tooltips[i]); // no container here, set tool tip on text boxes using this } y += vspacing; } ExtendedControls.ExtButton confirmation = new ExtendedControls.ExtButton() { Text = "OK".Tx(), Left = tbs[0].Right - 80, Width = 80, Top = y, DialogResult = DialogResult.OK }; outer.Controls.Add(confirmation); confirmation.Click += (sender, e) => { prompt.Close(); }; ExtendedControls.ExtButton cancel = new ExtendedControls.ExtButton() { Text = "Cancel".Tx(), Left = confirmation.Location.X - 90, Width = 80, Top = confirmation.Top, DialogResult = DialogResult.Cancel }; outer.Controls.Add(cancel); cancel.Click += (sender, e) => { prompt.Close(); }; if (!multiline) prompt.AcceptButton = confirmation; prompt.CancelButton = cancel; prompt.ShowInTaskbar = false; theme.ApplyToFormStandardFontSize(prompt); if (prompt.ShowDialog(p) == DialogResult.OK) { var r = (from ExtendedControls.ExtTextBox t in tbs select t.Text).ToList(); return r; } else return null; }
private void Init(Icon icon, System.Drawing.Point pos, string caption, string lname, Object callertag, bool posiscentrecoords = false, AutoScaleMode asm = AutoScaleMode.Font) { this.logicalname = lname; // passed back to caller via trigger this.callertag = callertag; // passed back to caller via trigger ITheme theme = ThemeableFormsInstance.Instance; FormBorderStyle = FormBorderStyle.FixedDialog; ExtPanelScroll outer = new ExtPanelScroll() { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle }; outer.MouseDown += FormMouseDown; outer.MouseUp += FormMouseUp; Controls.Add(outer); ExtScrollBar scr = new ExtScrollBar(); scr.HideScrollBar = true; outer.Controls.Add(scr); this.Text = caption; Label textLabel = new Label() { Left = 4, Top = 8, Width = Width - 50, Text = caption }; textLabel.MouseDown += FormMouseDown; textLabel.MouseUp += FormMouseUp; if (!theme.WindowsFrame) { outer.Controls.Add(textLabel); } ToolTip tt = new ToolTip(components); tt.ShowAlways = true; for (int i = 0; i < entries.Count; i++) { Entry ent = entries[i]; Control c = ent.controltype != null ? (Control)Activator.CreateInstance(ent.controltype) : ent.control; ent.control = c; c.Size = ent.size; c.Location = ent.pos; //System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size); if (!(ent.controltype == null || c is ExtendedControls.ExtComboBox || c is ExtendedControls.ExtDateTimePicker || c is ExtendedControls.NumberBoxDouble || c is ExtendedControls.NumberBoxLong)) // everything but get text { c.Text = ent.text; } c.Tag = ent; // point control tag at ent structure outer.Controls.Add(c); if (ent.tooltip != null) { tt.SetToolTip(c, ent.tooltip); } if (c is ExtendedControls.ExtButton) { ExtendedControls.ExtButton b = c as ExtendedControls.ExtButton; b.Click += (sender, ev) => { if (!ProgClose) { Entry en = (Entry)(((Control)sender).Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.NumberBoxDouble) { ExtendedControls.NumberBoxDouble cb = c as ExtendedControls.NumberBoxDouble; cb.Minimum = ent.numberboxdoubleminimum; cb.Maximum = ent.numberboxdoublemaximum; double?v = ent.text.InvariantParseDoubleNull(); cb.Value = v.HasValue ? v.Value : cb.Minimum; if (ent.numberboxformat != null) { cb.Format = ent.numberboxformat; } cb.ReturnPressed += (box) => { SwallowReturn = false; if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } return(SwallowReturn); }; cb.ValidityChanged += (box, s) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.NumberBoxLong) { ExtendedControls.NumberBoxLong cb = c as ExtendedControls.NumberBoxLong; cb.Minimum = ent.numberboxlongminimum; cb.Maximum = ent.numberboxlongmaximum; long?v = ent.text.InvariantParseLongNull(); cb.Value = v.HasValue ? v.Value : cb.Minimum; if (ent.numberboxformat != null) { cb.Format = ent.numberboxformat; } cb.ReturnPressed += (box) => { SwallowReturn = false; if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } return(SwallowReturn); }; cb.ValidityChanged += (box, s) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.ExtTextBox) { ExtendedControls.ExtTextBox tb = c as ExtendedControls.ExtTextBox; tb.Multiline = tb.WordWrap = ent.textboxmultiline; tb.Size = ent.size; // restate size in case multiline is on tb.ClearOnFirstChar = ent.clearonfirstchar; tb.ReturnPressed += (box) => { SwallowReturn = false; if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } return(SwallowReturn); }; } else if (c is ExtendedControls.ExtCheckBox) { ExtendedControls.ExtCheckBox cb = c as ExtendedControls.ExtCheckBox; cb.Checked = ent.checkboxchecked; cb.Click += (sender, ev) => { if (!ProgClose) { Entry en = (Entry)(((Control)sender).Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } if (c is ExtendedControls.ExtDateTimePicker) { ExtendedControls.ExtDateTimePicker dt = c as ExtendedControls.ExtDateTimePicker; DateTime t; if (DateTime.TryParse(ent.text, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out t)) // assume local, so no conversion { dt.Value = t; } switch (ent.customdateformat.ToLowerInvariant()) { case "short": dt.Format = DateTimePickerFormat.Short; break; case "long": dt.Format = DateTimePickerFormat.Long; break; case "time": dt.Format = DateTimePickerFormat.Time; break; default: dt.CustomFormat = ent.customdateformat; break; } } if (c is ExtendedControls.ExtComboBox) { ExtendedControls.ExtComboBox cb = c as ExtendedControls.ExtComboBox; cb.Items.AddRange(ent.comboboxitems.Split(',')); if (cb.Items.Contains(ent.text)) { cb.SelectedItem = ent.text; } cb.SelectedIndexChanged += (sender, ev) => { Control ctr = (Control)sender; if (ctr.Enabled && !ProgClose) { Entry en = (Entry)(ctr.Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } } ShowInTaskbar = false; this.Icon = icon; this.AutoScaleMode = asm; //this.DumpTree(0); theme.ApplyStd(this); //this.DumpTree(0); int fh = (int)this.Font.GetHeight(); // use the FH to nerf the extra area so it scales with FH.. this helps keep the controls within a framed window // measure the items after scaling. Exclude the scroll bar Size measureitemsinwindow = outer.FindMaxSubControlArea(fh + 8, (theme.WindowsFrame ? 50 : 16) + fh, new Type[] { typeof(ExtScrollBar) }); StartPosition = FormStartPosition.Manual; Location = pos; this.PositionSizeWithinScreen(measureitemsinwindow.Width, measureitemsinwindow.Height, false, 64, centrecoords: posiscentrecoords); }
public void Init(Icon icon, System.Drawing.Size size, System.Drawing.Point pos, string caption, string lname, Object callertag) { this.logicalname = lname; // passed back to caller via trigger this.callertag = callertag; // passed back to caller via trigger ITheme theme = ThemeableFormsInstance.Instance; FormBorderStyle = FormBorderStyle.FixedDialog; if (theme.WindowsFrame) { size.Height += 50; } Size = size; if (pos.X == -999) { StartPosition = FormStartPosition.CenterScreen; } else { Location = pos; StartPosition = FormStartPosition.Manual; } Panel outer = new Panel() { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle }; outer.MouseDown += FormMouseDown; outer.MouseUp += FormMouseUp; Controls.Add(outer); this.Text = caption; Label textLabel = new Label() { Left = 4, Top = 8, Width = Width - 50, Text = caption }; textLabel.MouseDown += FormMouseDown; textLabel.MouseUp += FormMouseUp; if (!theme.WindowsFrame) { outer.Controls.Add(textLabel); } ToolTip tt = new ToolTip(components); tt.ShowAlways = true; for (int i = 0; i < entries.Count; i++) { Entry ent = entries[i]; Control c = ent.controltype != null ? (Control)Activator.CreateInstance(ent.controltype) : ent.control; ent.control = c; c.Size = ent.size; c.Location = ent.pos; //System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size); if (!(ent.controltype == null || c is ExtendedControls.ExtComboBox || c is ExtendedControls.ExtDateTimePicker || c is ExtendedControls.NumberBoxDouble || c is ExtendedControls.NumberBoxLong)) // everything but get text { c.Text = ent.text; } c.Tag = ent; // point control tag at ent structure outer.Controls.Add(c); if (ent.tooltip != null) { tt.SetToolTip(c, ent.tooltip); } if (c is ExtendedControls.ExtButton) { ExtendedControls.ExtButton b = c as ExtendedControls.ExtButton; b.Click += (sender, ev) => { if (!ProgClose) { Entry en = (Entry)(((Control)sender).Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.NumberBoxDouble) { ExtendedControls.NumberBoxDouble cb = c as ExtendedControls.NumberBoxDouble; cb.Minimum = ent.numberboxdoubleminimum; cb.Maximum = ent.numberboxdoublemaximum; double?v = ent.text.InvariantParseDoubleNull(); cb.Value = v.HasValue ? v.Value : cb.Minimum; if (ent.numberboxformat != null) { cb.Format = ent.numberboxformat; } cb.ReturnPressed += (box) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; cb.ValidityChanged += (box, s) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.NumberBoxLong) { ExtendedControls.NumberBoxLong cb = c as ExtendedControls.NumberBoxLong; cb.Minimum = ent.numberboxlongminimum; cb.Maximum = ent.numberboxlongmaximum; long?v = ent.text.InvariantParseLongNull(); cb.Value = v.HasValue ? v.Value : cb.Minimum; if (ent.numberboxformat != null) { cb.Format = ent.numberboxformat; } cb.ReturnPressed += (box) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; cb.ValidityChanged += (box, s) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Validity:" + s.ToString(), this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.ExtTextBox) { ExtendedControls.ExtTextBox tb = c as ExtendedControls.ExtTextBox; tb.Multiline = tb.WordWrap = ent.textboxmultiline; tb.Size = ent.size; // restate size in case multiline is on tb.ClearOnFirstChar = ent.clearonfirstchar; tb.ReturnPressed += (box) => { if (!ProgClose) { Entry en = (Entry)(box.Tag); Trigger?.Invoke(logicalname, en.controlname + ":Return", this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } else if (c is ExtendedControls.ExtCheckBox) { ExtendedControls.ExtCheckBox cb = c as ExtendedControls.ExtCheckBox; cb.Checked = ent.checkboxchecked; cb.Click += (sender, ev) => { if (!ProgClose) { Entry en = (Entry)(((Control)sender).Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } if (c is ExtendedControls.ExtDateTimePicker) { ExtendedControls.ExtDateTimePicker dt = c as ExtendedControls.ExtDateTimePicker; DateTime t; if (DateTime.TryParse(ent.text, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out t)) // assume local, so no conversion { dt.Value = t; } switch (ent.customdateformat.ToLowerInvariant()) { case "short": dt.Format = DateTimePickerFormat.Short; break; case "long": dt.Format = DateTimePickerFormat.Long; break; case "time": dt.Format = DateTimePickerFormat.Time; break; default: dt.CustomFormat = ent.customdateformat; break; } } if (c is ExtendedControls.ExtComboBox) { ExtendedControls.ExtComboBox cb = c as ExtendedControls.ExtComboBox; if (ent.comboboxdropdownsize != null) { cb.DropDownHeight = ent.comboboxdropdownsize.Value.Height; cb.DropDownWidth = ent.comboboxdropdownsize.Value.Width; } cb.Items.AddRange(ent.comboboxitems.Split(',')); if (cb.Items.Contains(ent.text)) { cb.SelectedItem = ent.text; } cb.SelectedIndexChanged += (sender, ev) => { Control ctr = (Control)sender; if (ctr.Enabled && !ProgClose) { Entry en = (Entry)(ctr.Tag); Trigger?.Invoke(logicalname, en.controlname, this.callertag); // pass back the logical name of dialog, the name of the control, the caller tag } }; } } ShowInTaskbar = false; this.Icon = icon; theme.ApplyToFormStandardFontSize(this); //foreach( Control c in Controls[0].Controls ) System.Diagnostics.Debug.WriteLine("Control " + c.GetType().ToString() + " at " + c.Location + " " + c.Size); }
private void textBox_Range_KeyPress(object sender, KeyPressEventArgs e) { ExtendedControls.ExtTextBox tbb = sender as ExtendedControls.ExtTextBox; tbb.NumericKeyPressHandler(e); }