rautomation 0.12.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/History.rdoc +11 -1
- data/VERSION +1 -1
- data/ext/UiaDll/RAutomation.UIA/Controls/Clicker.cs +5 -1
- data/ext/UiaDll/RAutomation.UIA/Controls/SelectList.cs +41 -1
- data/ext/UiaDll/RAutomation.UIA/Controls/TableControl.cs +37 -2
- data/ext/UiaDll/RAutomation.UIA/Extensions/Element.cs +48 -1
- data/ext/UiaDll/UiaDll/SelectListMethods.cpp +23 -0
- data/ext/UiaDll/UiaDll/StringHelper.cpp +5 -0
- data/ext/UiaDll/UiaDll/StringHelper.h +1 -0
- data/ext/UiaDll/UiaDll/TableMethods.cpp +23 -5
- data/ext/WindowsForms/WindowsForms/AboutBox.Designer.cs +31 -0
- data/ext/WindowsForms/WindowsForms/DataEntryForm.Designer.cs +13 -0
- data/ext/WindowsForms/WindowsForms/DataEntryForm.cs +5 -0
- data/ext/WindowsForms/WindowsForms/MainFormWindow.Designer.cs +32 -22
- data/ext/WindowsForms/WindowsForms/MainFormWindow.cs +30 -1
- data/lib/rautomation/adapter/ms_uia/select_list.rb +8 -8
- data/lib/rautomation/adapter/ms_uia/table.rb +12 -8
- data/lib/rautomation/adapter/ms_uia/uia_dll.rb +36 -4
- data/spec/adapter/ms_uia/button_spec.rb +2 -2
- data/spec/adapter/ms_uia/checkbox_spec.rb +2 -2
- data/spec/adapter/ms_uia/listbox_spec.rb +15 -17
- data/spec/adapter/ms_uia/radio_spec.rb +1 -1
- data/spec/adapter/ms_uia/select_list_spec.rb +67 -65
- data/spec/adapter/ms_uia/spinner_spec.rb +1 -1
- data/spec/adapter/ms_uia/tab_control_spec.rb +3 -3
- data/spec/adapter/ms_uia/table_spec.rb +35 -17
- data/spec/adapter/ms_uia/text_field_spec.rb +2 -2
- data/spec/adapter/ms_uia/window_spec.rb +1 -63
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e50cb69e80b4659265b0edfc11904e064efee3b
|
4
|
+
data.tar.gz: 6ea9b5a0d4cfc8c2c43ddd995c7a0c8b07ccff7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bbe2f8ed80c1dff85044ce04fba2e62fac3489045d4cadaf792322f70eac4a9f06e08a4d86e6ec0e3afabc9ac6559e166f75397976b1af1f3ed76874976e88f
|
7
|
+
data.tar.gz: 2400713a652d47652e93249c2a38dcd8e809f46a619ea986762bada8d561f13e2eed3dff293eb2fc84020654efdf728599492a431026a6729b97543bd545578f
|
data/Gemfile.lock
CHANGED
data/History.rdoc
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
-
== 0.
|
1
|
+
== 0.13.0
|
2
|
+
|
3
|
+
=== MsUia adapter
|
4
|
+
|
5
|
+
* Added #select and #clear into SelectList::SelectListOption for multi-select support
|
6
|
+
* Removed SelectList#select and SelectList#set
|
7
|
+
* Added #select, #selected? and #clear to Table::Row for multi-select support
|
8
|
+
* Removed Table#select and Table#selected?
|
9
|
+
* Fixed an issue with selecting ListBox items that our outside of the viewable area
|
10
|
+
|
11
|
+
== 0.12.0 / 2013-09-05
|
2
12
|
|
3
13
|
=== MsUia adapter
|
4
14
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.13.0
|
@@ -1,5 +1,7 @@
|
|
1
1
|
using System;
|
2
2
|
using System.Runtime.InteropServices;
|
3
|
+
using System.Threading;
|
4
|
+
using System.Windows;
|
3
5
|
using System.Windows.Automation;
|
4
6
|
using System.Windows.Forms;
|
5
7
|
using RAutomation.UIA.Extensions;
|
@@ -49,9 +51,11 @@ namespace RAutomation.UIA.Controls
|
|
49
51
|
|
50
52
|
public static void MouseClick(AutomationElement element)
|
51
53
|
{
|
54
|
+
element.ScrollToIfPossible();
|
52
55
|
element.SetFocus();
|
56
|
+
|
53
57
|
var clickablePoint = element.GetClickablePoint();
|
54
|
-
Cursor.Position = new System.Drawing.Point((int)
|
58
|
+
Cursor.Position = new System.Drawing.Point((int)clickablePoint.X, (int)clickablePoint.Y);
|
55
59
|
mouse_event(MOUSEEVENTLF_LEFTDOWN, 0, 0, 0, 0);
|
56
60
|
mouse_event(MOUSEEVENTLF_LEFTUP, 0, 0, 0, 0);
|
57
61
|
}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
using System.Collections.Generic;
|
2
2
|
using System.Linq;
|
3
|
+
using System.Threading;
|
4
|
+
using System.Windows;
|
3
5
|
using System.Windows.Automation;
|
4
6
|
using RAutomation.UIA.Extensions;
|
5
7
|
using RAutomation.UIA.Properties;
|
@@ -49,7 +51,35 @@ namespace RAutomation.UIA.Controls
|
|
49
51
|
}
|
50
52
|
}
|
51
53
|
|
52
|
-
|
54
|
+
public string[] Selections
|
55
|
+
{
|
56
|
+
get { return SelectionPattern.GetSelection().Select(x => x.Current.Name).ToArray(); }
|
57
|
+
}
|
58
|
+
|
59
|
+
public void Remove(int index)
|
60
|
+
{
|
61
|
+
SelectionItems.ElementAt(index).AsSelectionItem().RemoveFromSelection();
|
62
|
+
}
|
63
|
+
|
64
|
+
public void Remove(string value)
|
65
|
+
{
|
66
|
+
SelectionNamed(value).RemoveFromSelection();
|
67
|
+
}
|
68
|
+
|
69
|
+
private void Select(AutomationElement element)
|
70
|
+
{
|
71
|
+
if (SelectionPattern.CanSelectMultiple)
|
72
|
+
MultipleSelect(element);
|
73
|
+
else
|
74
|
+
SingleSelect(element);
|
75
|
+
}
|
76
|
+
|
77
|
+
private static void MultipleSelect(AutomationElement element)
|
78
|
+
{
|
79
|
+
element.AsSelectionItem().AddToSelection();
|
80
|
+
}
|
81
|
+
|
82
|
+
private static void SingleSelect(AutomationElement element)
|
53
83
|
{
|
54
84
|
var selectionItem = element.AsSelectionItem();
|
55
85
|
|
@@ -63,6 +93,16 @@ namespace RAutomation.UIA.Controls
|
|
63
93
|
selectionItem.Select();
|
64
94
|
}
|
65
95
|
|
96
|
+
private SelectionPattern.SelectionPatternInformation SelectionPattern
|
97
|
+
{
|
98
|
+
get { return _element.As<SelectionPattern>(System.Windows.Automation.SelectionPattern.Pattern).Current; }
|
99
|
+
}
|
100
|
+
|
101
|
+
private SelectionItemPattern SelectionNamed(string value)
|
102
|
+
{
|
103
|
+
return SelectionItems.First(x => x.Current.Name == value).AsSelectionItem();
|
104
|
+
}
|
105
|
+
|
66
106
|
private static bool IsSelected(AutomationElement element)
|
67
107
|
{
|
68
108
|
return element.AsSelectionItem().Current.IsSelected;
|
@@ -23,12 +23,27 @@ namespace RAutomation.UIA.Controls
|
|
23
23
|
public int SelectedIndex
|
24
24
|
{
|
25
25
|
get { return SelectionItems.IndexOf(x => x.Current.IsSelected); }
|
26
|
-
set {
|
26
|
+
set { Select(value); }
|
27
|
+
}
|
28
|
+
|
29
|
+
public bool IsRowSelected(int dataItemIndex)
|
30
|
+
{
|
31
|
+
return DataItems.ElementAt(dataItemIndex).AsSelectionItem().Current.IsSelected;
|
32
|
+
}
|
33
|
+
|
34
|
+
public void Remove(int dataItemIndex)
|
35
|
+
{
|
36
|
+
DataItems.ElementAt(dataItemIndex).AsSelectionItem().RemoveFromSelection();
|
37
|
+
}
|
38
|
+
|
39
|
+
public void Remove(string dataItemValue)
|
40
|
+
{
|
41
|
+
DataItems.FirstOrDefault(x => x.Current.Name == dataItemValue).AsSelectionItem().RemoveFromSelection();
|
27
42
|
}
|
28
43
|
|
29
44
|
public string Value
|
30
45
|
{
|
31
|
-
set {
|
46
|
+
set { Select(value); }
|
32
47
|
}
|
33
48
|
|
34
49
|
public bool Exists(int row, int column)
|
@@ -56,6 +71,26 @@ namespace RAutomation.UIA.Controls
|
|
56
71
|
get { return TableOrListItems.Select(x => x.Current.Name).ToArray(); }
|
57
72
|
}
|
58
73
|
|
74
|
+
private void Select(int value)
|
75
|
+
{
|
76
|
+
var selectionItem = DataItems.ElementAt(value).AsSelectionItem();
|
77
|
+
|
78
|
+
if (SelectionPattern.CanSelectMultiple)
|
79
|
+
selectionItem.AddToSelection();
|
80
|
+
else
|
81
|
+
selectionItem.Select();
|
82
|
+
}
|
83
|
+
|
84
|
+
private SelectionPattern.SelectionPatternInformation SelectionPattern
|
85
|
+
{
|
86
|
+
get { return _element.As<SelectionPattern>(SelectionPatternIdentifiers.Pattern).Current; }
|
87
|
+
}
|
88
|
+
|
89
|
+
private void Select(string value)
|
90
|
+
{
|
91
|
+
SelectionElements.First(x => x.Current.Name == value).AsSelectionItem().Select();
|
92
|
+
}
|
93
|
+
|
59
94
|
private IEnumerable<SelectionItemPattern> SelectionItems
|
60
95
|
{
|
61
96
|
get { return SelectionElements.Select(x => x.As<SelectionItemPattern>(SelectionItemPattern.Pattern)); }
|
@@ -1,4 +1,6 @@
|
|
1
|
-
using System
|
1
|
+
using System;
|
2
|
+
using System.Threading;
|
3
|
+
using System.Windows;
|
2
4
|
using System.Windows.Automation;
|
3
5
|
|
4
6
|
namespace RAutomation.UIA.Extensions
|
@@ -101,6 +103,51 @@ namespace RAutomation.UIA.Extensions
|
|
101
103
|
return (bool)automationElement.GetCurrentPropertyValue(AutomationElement.IsValuePatternAvailableProperty);
|
102
104
|
}
|
103
105
|
|
106
|
+
public static bool CanScrollTo(this AutomationElement automationElement)
|
107
|
+
{
|
108
|
+
return (bool)automationElement.GetCurrentPropertyValue(AutomationElement.IsScrollItemPatternAvailableProperty);
|
109
|
+
}
|
110
|
+
|
111
|
+
public static ScrollItemPattern AsScrollItem(this AutomationElement automationElement)
|
112
|
+
{
|
113
|
+
return automationElement.As<ScrollItemPattern>(ScrollItemPatternIdentifiers.Pattern);
|
114
|
+
}
|
115
|
+
|
116
|
+
public static bool HasClickablePoint(this AutomationElement automationElement)
|
117
|
+
{
|
118
|
+
Point point;
|
119
|
+
return automationElement.TryGetClickablePoint(out point);
|
120
|
+
}
|
121
|
+
|
122
|
+
public static bool ScrollToIfPossible(this AutomationElement automationElement)
|
123
|
+
{
|
124
|
+
if (!automationElement.CanScrollTo())
|
125
|
+
{
|
126
|
+
return false;
|
127
|
+
}
|
128
|
+
|
129
|
+
if (!automationElement.HasClickablePoint())
|
130
|
+
{
|
131
|
+
automationElement.AsScrollItem().ScrollIntoView();
|
132
|
+
automationElement.WaitUntilClickable(3);
|
133
|
+
}
|
134
|
+
|
135
|
+
return true;
|
136
|
+
}
|
137
|
+
|
138
|
+
public static void WaitUntilClickable(this AutomationElement automationElement, int howManySeconds)
|
139
|
+
{
|
140
|
+
var then = DateTime.Now;
|
141
|
+
while (!automationElement.HasClickablePoint())
|
142
|
+
{
|
143
|
+
Thread.Sleep(1);
|
144
|
+
if ((DateTime.Now - then).Seconds > howManySeconds)
|
145
|
+
{
|
146
|
+
throw new Exception(string.Format("Waited for more than {0} seconds to be able to click this", howManySeconds));
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
104
151
|
public static ValuePattern AsValuePattern(this AutomationElement automationElement)
|
105
152
|
{
|
106
153
|
return (ValuePattern)automationElement.GetCurrentPattern(ValuePattern.Pattern);
|
@@ -26,6 +26,11 @@ extern "C" {
|
|
26
26
|
StringHelper::CopyToUnmanagedString(selectList->Selection, selection, selectionLength);
|
27
27
|
}
|
28
28
|
|
29
|
+
__declspec ( dllexport ) int SelectList_Selections(const FindInformation& findInformation, const char* selections[]) {
|
30
|
+
auto selectList = gcnew SelectList(Locator::FindFor(findInformation));
|
31
|
+
return StringHelper::Copy(selectList->Selections, selections);
|
32
|
+
}
|
33
|
+
|
29
34
|
__declspec ( dllexport ) bool SelectList_ValueAt(const FindInformation& findInformation, const int whichItem, char* comboValue, const int comboValueSize) {
|
30
35
|
try {
|
31
36
|
auto selectList = gcnew SelectList(Locator::FindFor(findInformation));
|
@@ -37,6 +42,24 @@ extern "C" {
|
|
37
42
|
}
|
38
43
|
}
|
39
44
|
|
45
|
+
__declspec ( dllexport ) void SelectList_RemoveIndex(const FindInformation& findInformation, const int whichItem, char* errorInfo, const int errorInfoLength) {
|
46
|
+
try {
|
47
|
+
auto selectList = gcnew SelectList(Locator::FindFor(findInformation));
|
48
|
+
selectList->Remove(whichItem);
|
49
|
+
} catch(Exception^ e) {
|
50
|
+
StringHelper::Write(e, errorInfo, errorInfoLength);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
__declspec ( dllexport ) void SelectList_RemoveValue(const FindInformation& findInformation, const char* whichItem, char* errorInfo, const int errorInfoLength) {
|
55
|
+
try {
|
56
|
+
auto selectList = gcnew SelectList(Locator::FindFor(findInformation));
|
57
|
+
selectList->Remove(gcnew String(whichItem));
|
58
|
+
} catch(Exception^ e) {
|
59
|
+
StringHelper::Write(e, errorInfo, errorInfoLength);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
40
63
|
__declspec ( dllexport ) bool SelectList_SelectIndex(const FindInformation& findInformation, const int whichItem) {
|
41
64
|
try {
|
42
65
|
auto selectList = gcnew SelectList(Locator::FindFor(findInformation));
|
@@ -8,6 +8,11 @@ void StringHelper::CopyToUnmanagedString(String^ source, char* destination, cons
|
|
8
8
|
Marshal::FreeHGlobal(unmanagedString);
|
9
9
|
}
|
10
10
|
|
11
|
+
void StringHelper::Write(Exception^ error, char* destination, const int destinationSize)
|
12
|
+
{
|
13
|
+
StringHelper::CopyToUnmanagedString(error->Message, destination, destinationSize);
|
14
|
+
}
|
15
|
+
|
11
16
|
char* StringHelper::UnmanagedStringFrom(String^ source)
|
12
17
|
{
|
13
18
|
const int numberOfBytes = source->Length + 1;
|
@@ -5,6 +5,7 @@ ref class StringHelper
|
|
5
5
|
{
|
6
6
|
public:
|
7
7
|
static void CopyToUnmanagedString(String^ source, char* destination, const int destinationSize);
|
8
|
+
static void StringHelper::Write(Exception^ error, char* destination, const int destinationSize);
|
8
9
|
static char* UnmanagedStringFrom(String^ source);
|
9
10
|
static void FreeUp(const char* unmanagedStrings[], const int numberOfStrings);
|
10
11
|
static int Copy(array<String^>^ strings, const char* unmanagedStrings[]);
|
@@ -45,31 +45,49 @@ extern "C" {
|
|
45
45
|
}
|
46
46
|
}
|
47
47
|
|
48
|
-
__declspec ( dllexport ) void Table_SelectByIndex(const FindInformation& findInformation, const int dataItemIndex) {
|
48
|
+
__declspec ( dllexport ) void Table_SelectByIndex(const FindInformation& findInformation, const int dataItemIndex, char* errorInfo, const int errorInfoLength) {
|
49
49
|
try {
|
50
50
|
auto tableControl = gcnew TableControl(Locator::FindFor(findInformation));
|
51
51
|
tableControl->SelectedIndex = dataItemIndex;
|
52
52
|
} catch(Exception^ e) {
|
53
|
-
|
53
|
+
StringHelper::Write(e, errorInfo, errorInfoLength);
|
54
54
|
}
|
55
55
|
}
|
56
56
|
|
57
|
+
__declspec ( dllexport ) void Table_RemoveRowByIndex(const FindInformation& findInformation, const int dataItemIndex, char* errorInfo, const int errorInfoLength) {
|
58
|
+
try {
|
59
|
+
auto tableControl = gcnew TableControl(Locator::FindFor(findInformation));
|
60
|
+
tableControl->Remove(dataItemIndex);
|
61
|
+
} catch(Exception^ e) {
|
62
|
+
StringHelper::Write(e, errorInfo, errorInfoLength);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
__declspec ( dllexport ) void Table_RemoveRowByValue(const FindInformation& findInformation, const char* dataItemValue, char* errorInfo, const int errorInfoLength) {
|
67
|
+
try {
|
68
|
+
auto tableControl = gcnew TableControl(Locator::FindFor(findInformation));
|
69
|
+
tableControl->Remove(gcnew String(dataItemValue));
|
70
|
+
} catch(Exception^ e) {
|
71
|
+
StringHelper::Write(e, errorInfo, errorInfoLength);
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
57
75
|
__declspec ( dllexport ) bool Table_IsSelectedByIndex(const FindInformation& findInformation, const int dataItemIndex) {
|
58
76
|
try {
|
59
77
|
auto tableControl = gcnew TableControl(Locator::FindFor(findInformation));
|
60
|
-
|
78
|
+
return tableControl->IsRowSelected(dataItemIndex);
|
61
79
|
} catch(Exception^ e) {
|
62
80
|
Console::WriteLine(e->ToString());
|
63
81
|
return false;
|
64
82
|
}
|
65
83
|
}
|
66
84
|
|
67
|
-
__declspec ( dllexport ) void Table_SelectByValue(const FindInformation& findInformation, const char* dataItemValue) {
|
85
|
+
__declspec ( dllexport ) void Table_SelectByValue(const FindInformation& findInformation, const char* dataItemValue, char* errorInfo, const int errorInfoLength) {
|
68
86
|
try {
|
69
87
|
auto tableControl = gcnew TableControl(Locator::FindFor(findInformation));
|
70
88
|
tableControl->Value = gcnew String(dataItemValue);
|
71
89
|
} catch(Exception^ e) {
|
72
|
-
|
90
|
+
StringHelper::Write(e, errorInfo, errorInfoLength);
|
73
91
|
}
|
74
92
|
}
|
75
93
|
}
|
@@ -34,9 +34,12 @@
|
|
34
34
|
this.infoTab = new System.Windows.Forms.TabPage();
|
35
35
|
this.moreInfo = new System.Windows.Forms.TabPage();
|
36
36
|
this.textBox1 = new System.Windows.Forms.TextBox();
|
37
|
+
this.tabPage1 = new System.Windows.Forms.TabPage();
|
38
|
+
this.multiFruitListBox = new System.Windows.Forms.ListBox();
|
37
39
|
this.tabControl.SuspendLayout();
|
38
40
|
this.infoTab.SuspendLayout();
|
39
41
|
this.moreInfo.SuspendLayout();
|
42
|
+
this.tabPage1.SuspendLayout();
|
40
43
|
this.SuspendLayout();
|
41
44
|
//
|
42
45
|
// label1
|
@@ -62,6 +65,7 @@
|
|
62
65
|
//
|
63
66
|
this.tabControl.Controls.Add(this.infoTab);
|
64
67
|
this.tabControl.Controls.Add(this.moreInfo);
|
68
|
+
this.tabControl.Controls.Add(this.tabPage1);
|
65
69
|
this.tabControl.Location = new System.Drawing.Point(12, 12);
|
66
70
|
this.tabControl.Name = "tabControl";
|
67
71
|
this.tabControl.SelectedIndex = 0;
|
@@ -99,6 +103,30 @@
|
|
99
103
|
this.textBox1.TabIndex = 0;
|
100
104
|
this.textBox1.Text = resources.GetString("textBox1.Text");
|
101
105
|
//
|
106
|
+
// tabPage1
|
107
|
+
//
|
108
|
+
this.tabPage1.Controls.Add(this.multiFruitListBox);
|
109
|
+
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
110
|
+
this.tabPage1.Name = "tabPage1";
|
111
|
+
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
112
|
+
this.tabPage1.Size = new System.Drawing.Size(543, 227);
|
113
|
+
this.tabPage1.TabIndex = 2;
|
114
|
+
this.tabPage1.Text = "Multi-Select ListBox";
|
115
|
+
this.tabPage1.UseVisualStyleBackColor = true;
|
116
|
+
//
|
117
|
+
// multiFruitListBox
|
118
|
+
//
|
119
|
+
this.multiFruitListBox.FormattingEnabled = true;
|
120
|
+
this.multiFruitListBox.Items.AddRange(new object[] {
|
121
|
+
"Apple",
|
122
|
+
"Orange",
|
123
|
+
"Mango"});
|
124
|
+
this.multiFruitListBox.Location = new System.Drawing.Point(6, 6);
|
125
|
+
this.multiFruitListBox.Name = "multiFruitListBox";
|
126
|
+
this.multiFruitListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
|
127
|
+
this.multiFruitListBox.Size = new System.Drawing.Size(159, 95);
|
128
|
+
this.multiFruitListBox.TabIndex = 15;
|
129
|
+
//
|
102
130
|
// AboutBox
|
103
131
|
//
|
104
132
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
@@ -120,6 +148,7 @@
|
|
120
148
|
this.infoTab.PerformLayout();
|
121
149
|
this.moreInfo.ResumeLayout(false);
|
122
150
|
this.moreInfo.PerformLayout();
|
151
|
+
this.tabPage1.ResumeLayout(false);
|
123
152
|
this.ResumeLayout(false);
|
124
153
|
|
125
154
|
}
|
@@ -132,6 +161,8 @@
|
|
132
161
|
private System.Windows.Forms.TabPage infoTab;
|
133
162
|
private System.Windows.Forms.TabPage moreInfo;
|
134
163
|
private System.Windows.Forms.TextBox textBox1;
|
164
|
+
private System.Windows.Forms.TabPage tabPage1;
|
165
|
+
private System.Windows.Forms.ListBox multiFruitListBox;
|
135
166
|
|
136
167
|
}
|
137
168
|
}
|
@@ -47,6 +47,7 @@
|
|
47
47
|
this.label1 = new System.Windows.Forms.Label();
|
48
48
|
this.maskedTextBox2 = new System.Windows.Forms.MaskedTextBox();
|
49
49
|
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
50
|
+
this.toggleMultiSelect = new System.Windows.Forms.Button();
|
50
51
|
this.groupBox3.SuspendLayout();
|
51
52
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
52
53
|
this.SuspendLayout();
|
@@ -164,11 +165,22 @@
|
|
164
165
|
this.numericUpDown1.Size = new System.Drawing.Size(120, 20);
|
165
166
|
this.numericUpDown1.TabIndex = 15;
|
166
167
|
//
|
168
|
+
// toggleMultiSelect
|
169
|
+
//
|
170
|
+
this.toggleMultiSelect.Location = new System.Drawing.Point(12, 41);
|
171
|
+
this.toggleMultiSelect.Name = "toggleMultiSelect";
|
172
|
+
this.toggleMultiSelect.Size = new System.Drawing.Size(95, 23);
|
173
|
+
this.toggleMultiSelect.TabIndex = 16;
|
174
|
+
this.toggleMultiSelect.Text = "Toggle Multi";
|
175
|
+
this.toggleMultiSelect.UseVisualStyleBackColor = true;
|
176
|
+
this.toggleMultiSelect.Click += new System.EventHandler(this.toggleMultiSelect_Click);
|
177
|
+
//
|
167
178
|
// DataEntryForm
|
168
179
|
//
|
169
180
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
170
181
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
171
182
|
this.ClientSize = new System.Drawing.Size(724, 474);
|
183
|
+
this.Controls.Add(this.toggleMultiSelect);
|
172
184
|
this.Controls.Add(this.numericUpDown1);
|
173
185
|
this.Controls.Add(this.maskedTextBox2);
|
174
186
|
this.Controls.Add(this.label1);
|
@@ -201,5 +213,6 @@
|
|
201
213
|
private System.Windows.Forms.ColumnHeader columnState;
|
202
214
|
private System.Windows.Forms.MaskedTextBox maskedTextBox2;
|
203
215
|
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
216
|
+
private System.Windows.Forms.Button toggleMultiSelect;
|
204
217
|
}
|
205
218
|
}
|