<span> 1</span>
<span>File: winformsManagedSystemWinFormsDataGridView.cs
</span>
<span> 2</span>
<span>Project: ndpfxsrcSystem.Windows.Forms.csproj (System.Windows.Forms)
</span>
<span> 3</span>
<span> 4</span>
<span>//</span>
<span>------------------------------------------------------------------------------
</span>
<span> 5</span>
<span>//</span>
<span> <copyright file="DataGridView.cs" company="Microsoft">
</span>
<span> 6</span>
<span>//</span>
<span> Copyright (c) Microsoft Corporation. All rights reserved.
</span>
<span> 7</span>
<span>//</span>
<span> </copyright>
</span>
<span> 8</span>
<span>//</span>
<span>------------------------------------------------------------------------------</span>
<span> 9</span>
<span> 10</span>
<span>namespace</span>
<span> System.Windows.Forms
</span>
<span> 11</span>
<span>{
</span>
<span> 12</span>
<span>using</span>
<span> System.Text;
</span>
<span> 13</span>
<span>using</span>
<span> System.Runtime.InteropServices;
</span>
<span> 14</span>
<span>using</span>
<span> System.Runtime.Remoting;
</span>
<span> 15</span>
<span>using</span>
<span> System.ComponentModel;
</span>
<span> 16</span>
<span>using</span>
<span> System;
</span>
<span> 17</span>
<span>using</span>
<span> System.Diagnostics.CodeAnalysis;
</span>
<span> 18</span>
<span>using</span>
<span> System.Security;
</span>
<span> 19</span>
<span>using</span>
<span> System.Security.Permissions;
</span>
<span> 20</span>
<span>using</span>
<span> System.Collections;
</span>
<span> 21</span>
<span>using</span>
<span> System.Windows.Forms;
</span>
<span> 22</span>
<span>using</span>
<span> System.Windows.Forms.Design;
</span>
<span> 23</span>
<span>using</span>
<span> System.ComponentModel.Design;
</span>
<span> 24</span>
<span>using</span>
<span> System.Drawing;
</span>
<span> 25</span>
<span>using</span>
<span> System.Windows.Forms.ComponentModel;
</span>
<span> 26</span>
<span>using</span>
<span> System.Windows.Forms.Layout;
</span>
<span> 27</span>
<span>using</span>
<span> System.Globalization;
</span>
<span> 28</span>
<span>using</span>
<span> System.Diagnostics;
</span>
<span> 29</span>
<span>using</span>
<span> System.Windows.Forms.VisualStyles;
</span>
<span> 30</span>
<span>using</span>
<span> Microsoft.Win32;
</span>
<span> 31</span>
<span>using</span>
<span> System.Collections.Specialized;
</span>
<span> 32</span>
<span> 33</span>
<span>///</span>
<span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView"]/*‘ /></span>
<span> 34</span>
<span> [
</span>
<span> 35</span> ComVisible(<span>true</span><span>),
</span><span> 36</span><span> ClassInterface(ClassInterfaceType.AutoDispatch),
</span><span> 37</span> Designer(<span>"</span><span>System.Windows.Forms.Design.DataGridViewDesigner, </span><span>"</span> +<span> AssemblyRef.SystemDesign),
</span><span> 38</span><span>//</span><span>DefaultProperty("DataSource"),</span><span> 39</span> DefaultEvent(<span>"</span><span>CellContentClick</span><span>"</span><span>),
</span><span> 40</span> ComplexBindingProperties(<span>"</span><span>DataSource</span><span>"</span>, <span>"</span><span>DataMember</span><span>"</span><span>),
</span><span> 41</span><span> Docking(DockingBehavior.Ask),
</span><span> 42</span> Editor(<span>"</span><span>System.Windows.Forms.Design.DataGridViewComponentEditor, </span><span>"</span> + AssemblyRef.SystemDesign, <span>typeof</span><span>(ComponentEditor)),
</span><span> 43</span><span> SRDescription(SR.DescriptionDataGridView)
</span><span> 44</span><span> ]
</span><span> 45</span><span>public</span><span>partial</span><span>class</span><span> DataGridView : Control, ISupportInitialize
</span><span> 46</span><span> {
</span><span> 47</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWALLOWUSERTOADDROWSCHANGED = <span>new</span><span>object</span><span>();
</span><span> 48</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWALLOWUSERTODELETEROWSCHANGED = <span>new</span><span>object</span><span>();
</span><span> 49</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWALLOWUSERTOORDERCOLUMNSCHANGED = <span>new</span><span>object</span><span>();
</span><span> 50</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWALLOWUSERTORESIZECOLUMNSCHANGED = <span>new</span><span>object</span><span>();
</span><span> 51</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWALLOWUSERTORESIZEROWSCHANGED = <span>new</span><span>object</span><span>();
</span><span> 52</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWALTERNATINGROWSDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 53</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWAUTOGENERATECOLUMNSCHANGED = <span>new</span><span>object</span><span>();
</span><span> 54</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWAUTOSIZECOLUMNMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 55</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWAUTOSIZECOLUMNSMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 56</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWAUTOSIZEROWSMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 57</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWBACKGROUNDCOLORCHANGED = <span>new</span><span>object</span><span>();
</span><span> 58</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWBORDERSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 59</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCANCELROWEDIT = <span>new</span><span>object</span><span>();
</span><span> 60</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLBEGINEDIT = <span>new</span><span>object</span><span>();
</span><span> 61</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLBORDERSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 62</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLCLICK = <span>new</span><span>object</span><span>();
</span><span> 63</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLCONTENTCLICK = <span>new</span><span>object</span><span>();
</span><span> 64</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLCONTENTDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 65</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLCONTEXTMENUSTRIPCHANGED = <span>new</span><span>object</span><span>();
</span><span> 66</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLCONTEXTMENUSTRIPNEEDED = <span>new</span><span>object</span><span>();
</span><span> 67</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 68</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLENDEDIT = <span>new</span><span>object</span><span>();
</span><span> 69</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLENTER = <span>new</span><span>object</span><span>();
</span><span> 70</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLERRORTEXTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 71</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLERRORTEXTNEEDED = <span>new</span><span>object</span><span>();
</span><span> 72</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLFORMATTING = <span>new</span><span>object</span><span>();
</span><span> 73</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLLEAVE = <span>new</span><span>object</span><span>();
</span><span> 74</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSECLICK = <span>new</span><span>object</span><span>();
</span><span> 75</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSEDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 76</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSEDOWN = <span>new</span><span>object</span><span>();
</span><span> 77</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSEENTER = <span>new</span><span>object</span><span>();
</span><span> 78</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSELEAVE = <span>new</span><span>object</span><span>();
</span><span> 79</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSEMOVE = <span>new</span><span>object</span><span>();
</span><span> 80</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLMOUSEUP = <span>new</span><span>object</span><span>();
</span><span> 81</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLPAINTING = <span>new</span><span>object</span><span>();
</span><span> 82</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLPARSING = <span>new</span><span>object</span><span>();
</span><span> 83</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLSTATECHANGED = <span>new</span><span>object</span><span>();
</span><span> 84</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 85</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLSTYLECONTENTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 86</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLTOOLTIPTEXTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 87</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLTOOLTIPTEXTNEEDED = <span>new</span><span>object</span><span>();
</span><span> 88</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLVALIDATING = <span>new</span><span>object</span><span>();
</span><span> 89</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLVALIDATED = <span>new</span><span>object</span><span>();
</span><span> 90</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLVALUECHANGED = <span>new</span><span>object</span><span>();
</span><span> 91</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLVALUENEEDED = <span>new</span><span>object</span><span>();
</span><span> 92</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCELLVALUEPUSHED = <span>new</span><span>object</span><span>();
</span><span> 93</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNADDED = <span>new</span><span>object</span><span>();
</span><span> 94</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNCONTEXTMENUSTRIPCHANGED = <span>new</span><span>object</span><span>();
</span><span> 95</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNDATAPROPERTYNAMECHANGED = <span>new</span><span>object</span><span>();
</span><span> 96</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 97</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNDISPLAYINDEXCHANGED = <span>new</span><span>object</span><span>();
</span><span> 98</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNDIVIDERWIDTHCHANGED = <span>new</span><span>object</span><span>();
</span><span> 99</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERCELLCHANGED = <span>new</span><span>object</span><span>();
</span><span> 100</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNDIVIDERDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 101</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERMOUSECLICK = <span>new</span><span>object</span><span>();
</span><span> 102</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERMOUSEDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 103</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERSBORDERSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 104</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERSDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 105</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERSHEIGHTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 106</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNHEADERSHEIGHTSIZEMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 107</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNMINIMUMWIDTHCHANGED = <span>new</span><span>object</span><span>();
</span><span> 108</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNNAMECHANGED = <span>new</span><span>object</span><span>();
</span><span> 109</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNREMOVED = <span>new</span><span>object</span><span>();
</span><span> 110</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNSORTMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 111</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNSTATECHANGED = <span>new</span><span>object</span><span>();
</span><span> 112</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNTOOLTIPTEXTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 113</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCOLUMNWIDTHCHANGED = <span>new</span><span>object</span><span>();
</span><span> 114</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCURRENTCELLCHANGED = <span>new</span><span>object</span><span>();
</span><span> 115</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWCURRENTCELLDIRTYSTATECHANGED = <span>new</span><span>object</span><span>();
</span><span> 116</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWDATABINDINGCOMPLETE = <span>new</span><span>object</span><span>();
</span><span> 117</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWDATAERROR = <span>new</span><span>object</span><span>();
</span><span> 118</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWDATAMEMBERCHANGED = <span>new</span><span>object</span><span>();
</span><span> 119</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWDATASOURCECHANGED = <span>new</span><span>object</span><span>();
</span><span> 120</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 121</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWDEFAULTVALUESNEEDED = <span>new</span><span>object</span><span>();
</span><span> 122</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWEDITINGCONTROLSHOWING = <span>new</span><span>object</span><span>();
</span><span> 123</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWEDITMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 124</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWGRIDCOLORCHANGED = <span>new</span><span>object</span><span>();
</span><span> 125</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWMULTISELECTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 126</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWNEWROWNEEDED = <span>new</span><span>object</span><span>();
</span><span> 127</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWREADONLYCHANGED = <span>new</span><span>object</span><span>();
</span><span> 128</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWCONTEXTMENUSTRIPCHANGED = <span>new</span><span>object</span><span>();
</span><span> 129</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWCONTEXTMENUSTRIPNEEDED = <span>new</span><span>object</span><span>();
</span><span> 130</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 131</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWDIRTYSTATENEEDED = <span>new</span><span> Object();
</span><span> 132</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWDIVIDERHEIGHTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 133</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWENTER = <span>new</span><span>object</span><span>();
</span><span> 134</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWERRORTEXTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 135</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWERRORTEXTNEEDED = <span>new</span><span>object</span><span>();
</span><span> 136</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERCELLCHANGED = <span>new</span><span>object</span><span>();
</span><span> 137</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWDIVIDERDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 138</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERMOUSECLICK = <span>new</span><span>object</span><span>();
</span><span> 139</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERMOUSEDOUBLECLICK = <span>new</span><span>object</span><span>();
</span><span> 140</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERSBORDERSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 141</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERSDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 142</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERSWIDTHCHANGED = <span>new</span><span>object</span><span>();
</span><span> 143</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEADERSWIDTHSIZEMODECHANGED = <span>new</span><span>object</span><span>();
</span><span> 144</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEIGHTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 145</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEIGHTINFONEEDED = <span>new</span><span>object</span><span>();
</span><span> 146</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWHEIGHTINFOPUSHED = <span>new</span><span>object</span><span>();
</span><span> 147</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWLEAVE = <span>new</span><span>object</span><span>();
</span><span> 148</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWMINIMUMHEIGHTCHANGED = <span>new</span><span>object</span><span>();
</span><span> 149</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWPOSTPAINT = <span>new</span><span>object</span><span>();
</span><span> 150</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWPREPAINT = <span>new</span><span>object</span><span>();
</span><span> 151</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWSADDED = <span>new</span><span>object</span><span>();
</span><span> 152</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWSDEFAULTCELLSTYLECHANGED = <span>new</span><span>object</span><span>();
</span><span> 153</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWSREMOVED = <span>new</span><span>object</span><span>();
</span><span> 154</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWSTATECHANGED = <span>new</span><span>object</span><span>();
</span><span> 155</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWUNSHARED = <span>new</span><span>object</span><span>();
</span><span> 156</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWVALIDATED = <span>new</span><span>object</span><span>();
</span><span> 157</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWROWVALIDATING = <span>new</span><span>object</span><span>();
</span><span> 158</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWSCROLL = <span>new</span><span>object</span><span>();
</span><span> 159</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWSELECTIONCHANGED = <span>new</span><span>object</span><span>();
</span><span> 160</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWSORTCOMPARE = <span>new</span><span>object</span><span>();
</span><span> 161</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWSORTED = <span>new</span><span>object</span><span>();
</span><span> 162</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWUSERADDEDROW = <span>new</span><span>object</span><span>();
</span><span> 163</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWUSERDELETEDROW = <span>new</span><span>object</span><span>();
</span><span> 164</span><span>private</span><span>static</span><span>readonly</span><span>object</span> EVENT_DATAGRIDVIEWUSERDELETINGROW = <span>new</span><span>object</span><span>();
</span><span> 165</span><span> 166</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_allowUserToAddRows = <span>0x00000001</span><span>;
</span><span> 167</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_allowUserToDeleteRows = <span>0x00000002</span><span>;
</span><span> 168</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_allowUserToOrderColumns = <span>0x00000004</span><span>;
</span><span> 169</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_columnHeadersVisible = <span>0x00000008</span><span>;
</span><span> 170</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_rowHeadersVisible = <span>0x00000010</span><span>;
</span><span> 171</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_forwardCharMessage = <span>0x00000020</span><span>;
</span><span> 172</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_leavingWithTabKey = <span>0x00000040</span><span>;
</span><span> 173</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_multiSelect = <span>0x00000080</span><span>;
</span><span> 174</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_ignoringEditingChanges = <span>0x00000200</span><span>;
</span><span> 175</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_ambientForeColor = <span>0x00000400</span><span>;
</span><span> 176</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_scrolledSinceMouseDown = <span>0x00000800</span><span>;
</span><span> 177</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_editingControlHidden = <span>0x00001000</span><span>;
</span><span> 178</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_standardTab = <span>0x00002000</span><span>;
</span><span> 179</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_editingControlChanging = <span>0x00004000</span><span>;
</span><span> 180</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_currentCellInEditMode = <span>0x00008000</span><span>;
</span><span> 181</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_virtualMode = <span>0x00010000</span><span>;
</span><span> 182</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_editedCellChanged = <span>0x00020000</span><span>;
</span><span> 183</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_editedRowChanged = <span>0x00040000</span><span>;
</span><span> 184</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_newRowEdited = <span>0x00080000</span><span>;
</span><span> 185</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_readOnly = <span>0x00100000</span><span>;
</span><span> 186</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_newRowCreatedByEditing = <span>0x00200000</span><span>;
</span><span> 187</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_temporarilyResetCurrentCell = <span>0x00400000</span><span>;
</span><span> 188</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_autoGenerateColumns = <span>0x00800000</span><span>;
</span><span> 189</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_customCursorSet = <span>0x01000000</span><span>;
</span><span> 190</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_ambientFont = <span>0x02000000</span><span>;
</span><span> 191</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_ambientColumnHeadersFont = <span>0x04000000</span><span>;
</span><span> 192</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_ambientRowHeadersFont = <span>0x08000000</span><span>;
</span><span> 193</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_isRestrictedChecked = <span>0x10000000</span><span>;
</span><span> 194</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_isRestricted = <span>0x20000000</span><span>;
</span><span> 195</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE1_isAutoSized = <span>0x40000000</span><span>;
</span><span> 196</span><span> 197</span><span>//</span><span> DATAGRIDVIEWSTATE2_</span><span> 198</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_showEditingIcon = <span>0x00000001</span><span>;
</span><span> 199</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_allowUserToResizeColumns = <span>0x00000002</span><span>;
</span><span> 200</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_allowUserToResizeRows = <span>0x00000004</span><span>;
</span><span> 201</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_mouseOverRemovedEditingCtrl = <span>0x00000008</span><span>;
</span><span> 202</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_mouseOverRemovedEditingPanel = <span>0x00000010</span><span>;
</span><span> 203</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_mouseEnterExpected = <span>0x00000020</span><span>;
</span><span> 204</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_enableHeadersVisualStyles = <span>0x00000040</span><span>;
</span><span> 205</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_showCellErrors = <span>0x00000080</span><span>;
</span><span> 206</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_showCellToolTips = <span>0x00000100</span><span>;
</span><span> 207</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_showRowErrors = <span>0x00000200</span><span>;
</span><span> 208</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_showColumnRelocationInsertion = <span>0x00000400</span><span>;
</span><span> 209</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_rightToLeftMode = <span>0x00000800</span><span>;
</span><span> 210</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_rightToLeftValid = <span>0x00001000</span><span>;
</span><span> 211</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_currentCellWantsInputKey = <span>0x00002000</span><span>;
</span><span> 212</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_stopRaisingVerticalScroll = <span>0x00004000</span><span>;
</span><span> 213</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_stopRaisingHorizontalScroll = <span>0x00008000</span><span>;
</span><span> 214</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_replacedCellSelected = <span>0x00010000</span><span>;
</span><span> 215</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_replacedCellReadOnly = <span>0x00020000</span><span>;
</span><span> 216</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_raiseSelectionChanged = <span>0x00040000</span><span>;
</span><span> 217</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_initializing = <span>0x00080000</span><span>;
</span><span> 218</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_autoSizedWithoutHandle = <span>0x00100000</span><span>;
</span><span> 219</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_ignoreCursorChange = <span>0x00200000</span><span>;
</span><span> 220</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_rowsCollectionClearedInSetCell= <span>0x00400000</span><span>;
</span><span> 221</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_nextMouseUpIsDouble = <span>0x00800000</span><span>;
</span><span> 222</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_inBindingContextChanged = <span>0x01000000</span><span>;
</span><span> 223</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_allowHorizontalScrollbar = <span>0x02000000</span><span>;
</span><span> 224</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_usedFillWeightsDirty = <span>0x04000000</span><span>;
</span><span> 225</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_messageFromEditingCtrls = <span>0x08000000</span><span>;
</span><span> 226</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_cellMouseDownInContentBounds = <span>0x10000000</span><span>;
</span><span> 227</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWSTATE2_discardEditingControl = <span>0x20000000</span><span>;
</span><span> 228</span><span> 229</span><span>//</span><span> DATAGRIDVIEWOPER_</span><span> 230</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackColResize = <span>0x00000001</span><span>;
</span><span> 231</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackRowResize = <span>0x00000002</span><span>;
</span><span> 232</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackColSelect = <span>0x00000004</span><span>;
</span><span> 233</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackRowSelect = <span>0x00000008</span><span>;
</span><span> 234</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackCellSelect = <span>0x00000010</span><span>;
</span><span> 235</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackColRelocation = <span>0x00000020</span><span>;
</span><span> 236</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inSort = <span>0x00000040</span><span>;
</span><span> 237</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackColHeadersResize = <span>0x00000080</span><span>;
</span><span> 238</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackRowHeadersResize = <span>0x00000100</span><span>;
</span><span> 239</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_trackMouseMoves = <span>0x00000200</span><span>;
</span><span> 240</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inRefreshColumns = <span>0x00000400</span><span>;
</span><span> 241</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inDisplayIndexAdjustments = <span>0x00000800</span><span>;
</span><span> 242</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_lastEditCtrlClickDoubled = <span>0x00001000</span><span>;
</span><span> 243</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inMouseDown = <span>0x00002000</span><span>;
</span><span> 244</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inReadOnlyChange = <span>0x00004000</span><span>;
</span><span> 245</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inCellValidating = <span>0x00008000</span><span>;
</span><span> 246</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inBorderStyleChange = <span>0x00010000</span><span>;
</span><span> 247</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inCurrentCellChange = <span>0x00020000</span><span>;
</span><span> 248</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inAdjustFillingColumns = <span>0x00040000</span><span>;
</span><span> 249</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inAdjustFillingColumn = <span>0x00080000</span><span>;
</span><span> 250</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inDispose = <span>0x00100000</span><span>;
</span><span> 251</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inBeginEdit = <span>0x00200000</span><span>;
</span><span> 252</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_inEndEdit = <span>0x00400000</span><span>;
</span><span> 253</span><span>private</span><span>const</span><span>int</span> DATAGRIDVIEWOPER_resizingOperationAboutToStart = <span>0x00800000</span><span>;
</span><span> 254</span><span> 255</span><span>private</span><span>static</span> Size DragSize =<span> SystemInformation.DragSize;
</span><span> 256</span><span> 257</span><span>private</span><span>const</span><span>byte</span> DATAGRIDVIEW_columnSizingHotZone = <span>6</span><span>;
</span><span> 258</span><span>private</span><span>const</span><span>byte</span> DATAGRIDVIEW_rowSizingHotZone = <span>5</span><span>;
</span><span> 259</span><span>private</span><span>const</span><span>byte</span> DATAGRIDVIEW_insertionBarWidth = <span>3</span><span>;
</span><span> 260</span><span>private</span><span>const</span><span>byte</span> DATAGRIDVIEW_bulkPaintThreshold = <span>8</span><span>;
</span><span> 261</span><span> 262</span><span>private</span><span>const</span><span>string</span> DATAGRIDVIEW_htmlPrefix = <span>"</span><span>Version:1.0
StartHTML:00000097
EndHTML:{0}
StartFragment:00000133
EndFragment:{1}
</span><span>"</span><span>;
</span><span> 263</span><span>private</span><span>const</span><span>string</span> DATAGRIDVIEW_htmlStartFragment = <span>"</span><span><HTML>
<BODY>
<!--StartFragment--></span><span>"</span><span>;
</span><span> 264</span><span>private</span><span>const</span><span>string</span> DATAGRIDVIEW_htmlEndFragment = <span>"</span><span>
<!--EndFragment-->
</BODY>
</HTML></span><span>"</span><span>;
</span><span> 265</span><span> 266</span><span>private</span> System.Collections.Specialized.BitVector32 dataGridViewState1; <span>//</span><span> see DATAGRIDVIEWSTATE1_ consts above</span><span> 267</span><span>private</span> System.Collections.Specialized.BitVector32 dataGridViewState2; <span>//</span><span> see DATAGRIDVIEWSTATE2_ consts above</span><span> 268</span><span>private</span> System.Collections.Specialized.BitVector32 dataGridViewOper; <span>//</span><span> see DATAGRIDVIEWOPER_ consts above</span><span> 269</span><span> 270</span><span>private</span><span>const</span> BorderStyle defaultBorderStyle =<span> BorderStyle.FixedSingle;
</span><span> 271</span><span>private</span><span>const</span> DataGridViewAdvancedCellBorderStyle defaultAdvancedCellBorderStyle =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span> 272</span><span>private</span><span>const</span> DataGridViewAdvancedCellBorderStyle defaultAdvancedRowHeadersBorderStyle =<span> DataGridViewAdvancedCellBorderStyle.OutsetPartial;
</span><span> 273</span><span>private</span><span>const</span> DataGridViewAdvancedCellBorderStyle defaultAdvancedColumnHeadersBorderStyle =<span> DataGridViewAdvancedCellBorderStyle.OutsetPartial;
</span><span> 274</span><span> 275</span><span>private</span><span>const</span> DataGridViewSelectionMode defaultSelectionMode =<span> DataGridViewSelectionMode.RowHeaderSelect;
</span><span> 276</span><span>private</span><span>const</span> DataGridViewEditMode defaultEditMode =<span> DataGridViewEditMode.EditOnKeystrokeOrF2;
</span><span> 277</span><span> 278</span><span>private</span><span>const</span> DataGridViewAutoSizeRowCriteriaInternal invalidDataGridViewAutoSizeRowCriteriaInternalMask = ~(DataGridViewAutoSizeRowCriteriaInternal.Header |<span> DataGridViewAutoSizeRowCriteriaInternal.AllColumns);
</span><span> 279</span><span> 280</span><span>private</span> SolidBrush backgroundBrush =<span> DefaultBackgroundBrush;
</span><span> 281</span><span>private</span><span> Pen gridPen;
</span><span> 282</span><span>private</span><span> Cursor oldCursor;
</span><span> 283</span><span> 284</span><span>private</span> HScrollBar horizScrollBar = <span>new</span><span> HScrollBar();
</span><span> 285</span><span>private</span> VScrollBar vertScrollBar = <span>new</span><span> VScrollBar();
</span><span> 286</span><span>private</span><span> DataGridViewHeaderCell topLeftHeaderCell;
</span><span> 287</span><span> 288</span><span>private</span><span> DataGridViewRow rowTemplate;
</span><span> 289</span><span>private</span><span> DataGridViewRowCollection dataGridViewRows;
</span><span> 290</span><span>private</span><span> DataGridViewColumnCollection dataGridViewColumns;
</span><span> 291</span><span> 292</span><span>private</span><span> DataGridViewCellStyle placeholderCellStyle;
</span><span> 293</span><span>private</span><span> StringFormat placeholderStringFormat;
</span><span> 294</span><span> 295</span><span>private</span><span> DataGridViewColumn sortedColumn;
</span><span> 296</span><span>private</span><span> SortOrder sortOrder;
</span><span> 297</span><span> 298</span><span>private</span><span>object</span><span> uneditedFormattedValue;
</span><span> 299</span><span>private</span><span> Control editingControl, latestEditingControl, cachedEditingControl;
</span><span> 300</span><span>private</span><span> Panel editingPanel;
</span><span> 301</span><span>private</span> Point ptCurrentCell, ptCurrentCellCache =<span> Point.Empty, ptAnchorCell, ptMouseDownCell, ptMouseEnteredCell, ptToolTipCell, ptMouseDownGridCoord;
</span><span> 302</span><span> 303</span><span>private</span><span> DataGridViewSelectionMode selectionMode;
</span><span> 304</span><span>private</span><span> DataGridViewEditMode editMode;
</span><span> 305</span><span> 306</span><span>//</span><span> Note that a cell can only be in one bag but not both at the same time.</span><span> 307</span><span>private</span><span> DataGridViewCellLinkedList individualSelectedCells;
</span><span> 308</span><span>private</span><span> DataGridViewCellLinkedList individualReadOnlyCells;
</span><span> 309</span><span>private</span><span> DataGridViewIntLinkedList selectedBandIndexes;
</span><span> 310</span><span>private</span><span> DataGridViewIntLinkedList selectedBandSnapshotIndexes;
</span><span> 311</span><span> 312</span><span>private</span><span> DataGridViewCellStyle defaultCellStyle, columnHeadersDefaultCellStyle, rowHeadersDefaultCellStyle;
</span><span> 313</span><span>private</span><span> DataGridViewCellStyle rowsDefaultCellStyle, alternatingRowsDefaultCellStyle;
</span><span> 314</span><span>private</span><span> ScrollBars scrollBars;
</span><span> 315</span><span>private</span><span> LayoutData layout;
</span><span> 316</span><span>private</span><span> DisplayedBandsData displayedBandsInfo;
</span><span> 317</span><span>private</span><span> Rectangle normalClientRectangle;
</span><span> 318</span><span>private</span><span> ArrayList lstRows;
</span><span> 319</span><span>private</span><span>int</span><span> availableWidthForFillColumns;
</span><span> 320</span><span> 321</span><span>private</span><span> BorderStyle borderStyle;
</span><span> 322</span><span>private</span><span> DataGridViewAdvancedBorderStyle advancedCellBorderStyle;
</span><span> 323</span><span>private</span><span> DataGridViewAdvancedBorderStyle advancedRowHeadersBorderStyle;
</span><span> 324</span><span>private</span><span> DataGridViewAdvancedBorderStyle advancedColumnHeadersBorderStyle;
</span><span> 325</span><span> 326</span><span>private</span><span> DataGridViewClipboardCopyMode clipboardCopyMode;
</span><span> 327</span><span> 328</span><span>private</span><span>const</span><span>int</span> minimumRowHeadersWidth = <span>4</span><span>;
</span><span> 329</span><span>private</span><span>const</span><span>int</span> minimumColumnHeadersHeight = <span>4</span><span>;
</span><span> 330</span><span>private</span><span>const</span><span>int</span> defaultRowHeadersWidth = <span>41</span><span>;
</span><span> 331</span><span>private</span><span>const</span><span>int</span> maxHeadersThickness = <span>32768</span><span>;
</span><span> 332</span><span>private</span><span>const</span><span>int</span> upperSize = <span>0x007FFFFF</span><span>;
</span><span> 333</span><span>private</span><span>int</span> rowHeadersWidth =<span> defaultRowHeadersWidth;
</span><span> 334</span><span>private</span><span>int</span><span> cachedRowHeadersWidth;
</span><span> 335</span><span>private</span><span>const</span><span>int</span> defaultColumnHeadersHeight = <span>23</span><span>;
</span><span> 336</span><span>private</span><span>int</span> columnHeadersHeight =<span> defaultColumnHeadersHeight;
</span><span> 337</span><span>private</span><span>int</span><span> cachedColumnHeadersHeight;
</span><span> 338</span><span>private</span><span> DataGridViewAutoSizeRowsMode autoSizeRowsMode;
</span><span> 339</span><span>private</span><span> DataGridViewAutoSizeColumnsMode autoSizeColumnsMode;
</span><span> 340</span><span>private</span><span> DataGridViewColumnHeadersHeightSizeMode columnHeadersHeightSizeMode;
</span><span> 341</span><span>private</span><span> DataGridViewRowHeadersWidthSizeMode rowHeadersWidthSizeMode;
</span><span> 342</span><span> 343</span><span>private</span><span> DataGridViewCellStyleChangedEventArgs dgvcsce;
</span><span> 344</span><span>private</span><span> DataGridViewCellPaintingEventArgs dgvcpe;
</span><span> 345</span><span>private</span><span> DataGridViewCellValueEventArgs dgvcve;
</span><span> 346</span><span>private</span><span> DataGridViewRowHeightInfoNeededEventArgs dgvrhine;
</span><span> 347</span><span>private</span><span> DataGridViewRowPostPaintEventArgs dgvrpope;
</span><span> 348</span><span>private</span><span> DataGridViewRowPrePaintEventArgs dgvrprpe;
</span><span> 349</span><span> 350</span><span>//</span><span> the sum of the widths in pixels of the scrolling columns preceding
</span><span> 351</span><span>//</span><span> the first visible scrolling column</span><span> 352</span><span>private</span><span>int</span><span> horizontalOffset;
</span><span> 353</span><span> 354</span><span>//</span><span> the sum of the heights in pixels of the scrolling rows preceding
</span><span> 355</span><span>//</span><span> the first visible scrolling row</span><span> 356</span><span>private</span><span>int</span><span> verticalOffset;
</span><span> 357</span><span> 358</span><span>//</span><span> the number of pixels of the firstDisplayedScrollingCol which are not visible</span><span> 359</span><span>private</span><span>int</span><span> negOffset;
</span><span> 360</span><span> 361</span><span>//</span><span> the index of the potential ‘new‘ row. -1 if there is no ‘new‘ row.</span><span> 362</span><span>private</span><span>int</span> newRowIndex = -<span>1</span><span>;
</span><span> 363</span><span> 364</span><span>//</span><span> residual fraction of WHEEL_DELTA (120) for wheel scrolling</span><span> 365</span><span>private</span><span>int</span><span> cumulativeVerticalWheelDelta;
</span><span> 366</span><span>private</span><span>int</span><span> cumulativeHorizontalWheelDelta;
</span><span> 367</span><span> 368</span><span>private</span><span>int</span><span> trackColAnchor;
</span><span> 369</span><span>private</span><span>int</span> trackColumn = -<span>1</span><span>;
</span><span> 370</span><span>private</span><span>int</span> trackColumnEdge = -<span>1</span><span>;
</span><span> 371</span><span>private</span><span>int</span><span> trackRowAnchor;
</span><span> 372</span><span>private</span><span>int</span> trackRow = -<span>1</span><span>;
</span><span> 373</span><span>private</span><span>int</span> trackRowEdge = -<span>1</span><span>;
</span><span> 374</span><span>private</span><span>int</span> lastHeaderShadow = -<span>1</span><span>;
</span><span> 375</span><span>private</span><span>int</span> currentColSplitBar = -<span>1</span>, lastColSplitBar = -<span>1</span><span>;
</span><span> 376</span><span>private</span><span>int</span> currentRowSplitBar = -<span>1</span>, lastRowSplitBar = -<span>1</span><span>;
</span><span> 377</span><span>private</span><span>int</span><span> mouseBarOffset;
</span><span> 378</span><span>private</span><span>int</span><span> noDimensionChangeCount;
</span><span> 379</span><span>private</span><span>int</span><span> noSelectionChangeCount;
</span><span> 380</span><span>private</span><span>int</span><span> noAutoSizeCount;
</span><span> 381</span><span>private</span><span>int</span><span> inBulkPaintCount;
</span><span> 382</span><span>private</span><span>int</span><span> inBulkLayoutCount;
</span><span> 383</span><span>private</span><span>int</span><span> inPerformLayoutCount;
</span><span> 384</span><span> 385</span><span>private</span><span> System.Windows.Forms.Timer vertScrollTimer, horizScrollTimer;
</span><span> 386</span><span> 387</span><span>private</span><span> Hashtable converters;
</span><span> 388</span><span>private</span><span> Hashtable pens;
</span><span> 389</span><span>private</span><span> Hashtable brushes;
</span><span> 390</span><span> 391</span><span>private</span><span> NativeMethods.RECT[] cachedScrollableRegion;
</span><span> 392</span><span> 393</span><span>//</span><span> DataBinding</span><span> 394</span><span>private</span><span> DataGridViewDataConnection dataConnection;
</span><span> 395</span><span> 396</span><span>//</span><span> ToolTip</span><span> 397</span><span>private</span><span> DataGridViewToolTip toolTipControl;
</span><span> 398</span><span>//</span><span> the tool tip string we get from cells</span><span> 399</span><span>private</span><span>string</span> toolTipCaption =<span> String.Empty;
</span><span> 400</span><span> 401</span><span>private</span><span>const</span><span>int</span> maxTTDISPINFOBufferLength = <span>80</span><span>;
</span><span> 402</span><span> 403</span><span>//</span><span> Last Mouse Click Info</span><span> 404</span><span>private</span><span> MouseClickInfo lastMouseClickInfo;
</span><span> 405</span><span> 406</span><span>#if</span> DEBUG
<span> 407</span><span>//</span><span> set to false when the grid is not in [....] with the underlying data store
</span><span> 408</span><span>//</span><span> in virtual mode, and OnCellValueNeeded cannot be called.
</span><span> 409</span><span>//</span><span> disable csharp compiler warning #0414: field assigned unused value</span><span> 410</span><span>#pragma</span> warning disable 0414
<span> 411</span><span>internal</span><span>bool</span> dataStoreAccessAllowed = <span>true</span><span>;
</span><span> 412</span><span>#pragma</span> warning restore 0414
<span> 413</span><span>#endif</span><span> 414</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DataGridView"]/*‘ /></span><span> 415</span><span>///</span><span><devdoc></span><span> 416</span><span>///</span><span><para></span><span>Initializes a new instance of the </span><span><see cref=‘System.Windows.Forms.DataGridView‘/></span><span> class.</span><span></para></span><span> 417</span><span>///</span><span></devdoc></span><span> 418</span><span>public</span><span> DataGridView()
</span><span> 419</span><span> {
</span><span> 420</span> SetStyle(ControlStyles.UserPaint |
<span> 421</span> ControlStyles.Opaque |
<span> 422</span> ControlStyles.UserMouse, <span>true</span><span>);
</span><span> 423</span><span> 424</span> SetStyle(ControlStyles.SupportsTransparentBackColor, <span>false</span><span>);
</span><span> 425</span><span> 426</span><span>//</span><span> this class overrides GetPreferredSizeCore, let Control automatically cache the result</span><span> 427</span> SetState2(STATE2_USEPREFERREDSIZECACHE, <span>true</span><span>);
</span><span> 428</span><span> 429</span><span>this</span>.dataGridViewState1 = <span>new</span> System.Collections.Specialized.BitVector32(<span>0x00000000</span><span>);
</span><span> 430</span><span>this</span>.dataGridViewState2 = <span>new</span> System.Collections.Specialized.BitVector32(<span>0x00000000</span><span>);
</span><span> 431</span><span>this</span>.dataGridViewOper = <span>new</span> System.Collections.Specialized.BitVector32(<span>0x00000000</span><span>);
</span><span> 432</span><span> 433</span><span>this</span><span>.dataGridViewState1[ DATAGRIDVIEWSTATE1_columnHeadersVisible
</span><span> 434</span> |<span> DATAGRIDVIEWSTATE1_rowHeadersVisible
</span><span> 435</span> |<span> DATAGRIDVIEWSTATE1_autoGenerateColumns
</span><span> 436</span> |<span> DATAGRIDVIEWSTATE1_allowUserToAddRows
</span><span> 437</span> | DATAGRIDVIEWSTATE1_allowUserToDeleteRows ] = <span>true</span><span>;
</span><span> 438</span><span> 439</span><span> 440</span><span> 441</span><span>this</span><span>.dataGridViewState2[ DATAGRIDVIEWSTATE2_showEditingIcon
</span><span> 442</span> |<span> DATAGRIDVIEWSTATE2_enableHeadersVisualStyles
</span><span> 443</span> |<span> DATAGRIDVIEWSTATE2_mouseEnterExpected
</span><span> 444</span> |<span> DATAGRIDVIEWSTATE2_allowUserToResizeColumns
</span><span> 445</span> |<span> DATAGRIDVIEWSTATE2_allowUserToResizeRows
</span><span> 446</span> |<span> DATAGRIDVIEWSTATE2_showCellToolTips
</span><span> 447</span> |<span> DATAGRIDVIEWSTATE2_showCellErrors
</span><span> 448</span> |<span> DATAGRIDVIEWSTATE2_showRowErrors
</span><span> 449</span> |<span> DATAGRIDVIEWSTATE2_allowHorizontalScrollbar
</span><span> 450</span> | DATAGRIDVIEWSTATE2_usedFillWeightsDirty ] = <span>true</span><span>;
</span><span> 451</span><span> 452</span><span> 453</span><span>this</span>.displayedBandsInfo = <span>new</span><span> DisplayedBandsData();
</span><span> 454</span><span>this</span>.lstRows = <span>new</span><span> ArrayList();
</span><span> 455</span><span> 456</span><span>this</span>.converters = <span>new</span> Hashtable(<span>8</span><span>);
</span><span> 457</span><span>this</span>.pens = <span>new</span> Hashtable(<span>8</span><span>);
</span><span> 458</span><span>this</span>.brushes = <span>new</span> Hashtable(<span>10</span><span>);
</span><span> 459</span><span>this</span>.gridPen = <span>new</span><span> Pen(DefaultGridColor);
</span><span> 460</span><span> 461</span><span>this</span>.selectedBandIndexes = <span>new</span><span> DataGridViewIntLinkedList();
</span><span> 462</span><span>this</span>.individualSelectedCells = <span>new</span><span> DataGridViewCellLinkedList();
</span><span> 463</span><span>this</span>.individualReadOnlyCells = <span>new</span><span> DataGridViewCellLinkedList();
</span><span> 464</span><span> 465</span><span>this</span>.advancedCellBorderStyle = <span>new</span> DataGridViewAdvancedBorderStyle(<span>this</span><span>,
</span><span> 466</span><span> DataGridViewAdvancedCellBorderStyle.OutsetDouble,
</span><span> 467</span><span> DataGridViewAdvancedCellBorderStyle.OutsetPartial,
</span><span> 468</span><span> DataGridViewAdvancedCellBorderStyle.InsetDouble);
</span><span> 469</span><span>this</span>.advancedRowHeadersBorderStyle = <span>new</span> DataGridViewAdvancedBorderStyle(<span>this</span><span>);
</span><span> 470</span><span>this</span>.advancedColumnHeadersBorderStyle = <span>new</span> DataGridViewAdvancedBorderStyle(<span>this</span><span>);
</span><span> 471</span><span>this</span>.advancedCellBorderStyle.All =<span> defaultAdvancedCellBorderStyle;
</span><span> 472</span><span>this</span>.advancedRowHeadersBorderStyle.All =<span> defaultAdvancedRowHeadersBorderStyle;
</span><span> 473</span><span>this</span>.advancedColumnHeadersBorderStyle.All =<span> defaultAdvancedColumnHeadersBorderStyle;
</span><span> 474</span><span>this</span>.borderStyle =<span> defaultBorderStyle;
</span><span> 475</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_multiSelect] = <span>true</span><span>;
</span><span> 476</span><span>this</span>.selectionMode =<span> defaultSelectionMode;
</span><span> 477</span><span>this</span>.editMode =<span> defaultEditMode;
</span><span> 478</span><span>this</span>.autoSizeRowsMode =<span> DataGridViewAutoSizeRowsMode.None;
</span><span> 479</span><span>this</span>.autoSizeColumnsMode =<span> DataGridViewAutoSizeColumnsMode.None;
</span><span> 480</span><span>this</span>.columnHeadersHeightSizeMode =<span> DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
</span><span> 481</span><span>this</span>.rowHeadersWidthSizeMode =<span> DataGridViewRowHeadersWidthSizeMode.EnableResizing;
</span><span> 482</span><span> 483</span><span>this</span>.clipboardCopyMode =<span> DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
</span><span> 484</span><span> 485</span><span>this</span>.layout = <span>new</span><span> LayoutData();
</span><span> 486</span><span>this</span>.layout.TopLeftHeader =<span> Rectangle.Empty;
</span><span> 487</span><span>this</span>.layout.ColumnHeaders =<span> Rectangle.Empty;
</span><span> 488</span><span>this</span>.layout.RowHeaders =<span> Rectangle.Empty;
</span><span> 489</span><span>this</span>.layout.ColumnHeadersVisible = <span>true</span><span>;
</span><span> 490</span><span>this</span>.layout.RowHeadersVisible = <span>true</span><span>;
</span><span> 491</span><span>this</span>.layout.ClientRectangle = <span>this</span><span>.ClientRectangle;
</span><span> 492</span><span> 493</span><span>this</span>.scrollBars =<span> ScrollBars.Both;
</span><span> 494</span><span> 495</span><span>this</span>.horizScrollBar.RightToLeft =<span> RightToLeft.Inherit;
</span><span> 496</span><span>this</span>.horizScrollBar.AccessibleName =<span> SR.GetString(SR.DataGridView_AccHorizontalScrollBarAccName);
</span><span> 497</span><span>this</span>.horizScrollBar.Top = <span>this</span>.ClientRectangle.Height -<span> horizScrollBar.Height;
</span><span> 498</span><span>this</span>.horizScrollBar.Left = <span>0</span><span>;
</span><span> 499</span><span>this</span>.horizScrollBar.Visible = <span>false</span><span>;
</span><span> 500</span><span>this</span>.horizScrollBar.Scroll += <span>new</span><span> ScrollEventHandler(DataGridViewHScrolled);
</span><span> 501</span><span>this</span>.Controls.Add(<span>this</span><span>.horizScrollBar);
</span><span> 502</span><span> 503</span><span>this</span>.vertScrollBar.Top = <span>0</span><span>;
</span><span> 504</span><span>this</span>.vertScrollBar.AccessibleName =<span> SR.GetString(SR.DataGridView_AccVerticalScrollBarAccName);
</span><span> 505</span><span>this</span>.vertScrollBar.Left = <span>this</span>.ClientRectangle.Width -<span> vertScrollBar.Width;
</span><span> 506</span><span>this</span>.vertScrollBar.Visible = <span>false</span><span>;
</span><span> 507</span><span>this</span>.vertScrollBar.Scroll += <span>new</span><span> ScrollEventHandler(DataGridViewVScrolled);
</span><span> 508</span><span>this</span>.Controls.Add(<span>this</span><span>.vertScrollBar);
</span><span> 509</span><span> 510</span><span>this</span>.ptCurrentCell = <span>new</span> Point(-<span>1</span>, -<span>1</span><span>);
</span><span> 511</span><span>this</span>.ptAnchorCell = <span>new</span> Point(-<span>1</span>, -<span>1</span><span>);
</span><span> 512</span><span>this</span>.ptMouseDownCell = <span>new</span> Point(-<span>2</span>, -<span>2</span><span>);
</span><span> 513</span><span>this</span>.ptMouseEnteredCell = <span>new</span> Point(-<span>2</span>, -<span>2</span><span>);
</span><span> 514</span><span>this</span>.ptToolTipCell = <span>new</span> Point(-<span>1</span>, -<span>1</span><span>);
</span><span> 515</span><span>this</span>.ptMouseDownGridCoord = <span>new</span> Point(-<span>1</span>, -<span>1</span><span>);
</span><span> 516</span><span> 517</span><span>this</span>.sortOrder =<span> SortOrder.None;
</span><span> 518</span><span> 519</span><span>this</span>.lastMouseClickInfo.timeStamp = <span>0</span><span>;
</span><span> 520</span><span> 521</span><span> WireScrollBarsEvents();
</span><span> 522</span><span> PerformLayout();
</span><span> 523</span><span> 524</span><span>this</span>.toolTipControl = <span>new</span> DataGridViewToolTip(<span>this</span><span>);
</span><span> 525</span><span> 526</span><span> Invalidate();
</span><span> 527</span><span> }
</span><span> 528</span><span> 529</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AdjustedTopLeftHeaderBorderStyle"]/*‘ /></span><span> 530</span><span> [
</span><span> 531</span> Browsable(<span>false</span><span>),
</span><span> 532</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span> 533</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span> 534</span><span> ]
</span><span> 535</span><span>public</span><span>virtual</span><span> DataGridViewAdvancedBorderStyle AdjustedTopLeftHeaderBorderStyle
</span><span> 536</span><span> {
</span><span> 537</span><span>get</span><span> 538</span><span> {
</span><span> 539</span><span> DataGridViewAdvancedBorderStyle dgvabs;
</span><span> 540</span><span>if</span> (<span>this</span><span>.ApplyVisualStylesToHeaderCells)
</span><span> 541</span><span> {
</span><span> 542</span><span>switch</span> (<span>this</span><span>.AdvancedColumnHeadersBorderStyle.All)
</span><span> 543</span><span> {
</span><span> 544</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.OutsetDouble:
</span><span> 545</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.OutsetPartial:
</span><span> 546</span> dgvabs = <span>new</span><span> DataGridViewAdvancedBorderStyle();
</span><span> 547</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span> 548</span><span> {
</span><span> 549</span> dgvabs.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span> 550</span><span> }
</span><span> 551</span><span>else</span><span> 552</span><span> {
</span><span> 553</span> dgvabs.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.OutsetDouble;
</span><span> 554</span><span> }
</span><span> 555</span> dgvabs.RightInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span> 556</span> dgvabs.TopInternal =<span> DataGridViewAdvancedCellBorderStyle.OutsetDouble;
</span><span> 557</span> dgvabs.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span> 558</span><span>break</span><span>;
</span><span> 559</span><span> 560</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.InsetDouble:
</span><span> 561</span> dgvabs = <span>new</span><span> DataGridViewAdvancedBorderStyle();
</span><span> 562</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span> 563</span><span> {
</span><span> 564</span> dgvabs.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span> 565</span><span> }
</span><span> 566</span><span>else</span><span> 567</span><span> {
</span><span> 568</span> dgvabs.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.InsetDouble;
</span><span> 569</span><span> }
</span><span> 570</span> dgvabs.RightInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span> 571</span> dgvabs.TopInternal =<span> DataGridViewAdvancedCellBorderStyle.InsetDouble;
</span><span> 572</span> dgvabs.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span> 573</span><span>break</span><span>;
</span><span> 574</span><span> 575</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.NotSet:
</span><span> 576</span><span>//</span><span> Since the row headers are visible, we should make sure
</span><span> 577</span><span>//</span><span> that there is a left/right border for the TopLeftHeaderCell no matter what.</span><span> 578</span><span>if</span> ((!<span>this</span>.RightToLeftInternal && <span>this</span>.AdvancedColumnHeadersBorderStyle.Left == DataGridViewAdvancedCellBorderStyle.None) ||
<span> 579</span> (<span>this</span>.RightToLeftInternal && <span>this</span>.AdvancedColumnHeadersBorderStyle.Right ==<span> DataGridViewAdvancedCellBorderStyle.None))
</span><span> 580</span><span> {
</span><span> 581</span> dgvabs = <span>new</span><span> DataGridViewAdvancedBorderStyle();
</span><span> 582</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span> 583</span><span> {
</span><span> 584</span> dgvabs.LeftInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Left;
</span><span> 585</span> dgvabs.RightInternal = <span>this</span>.AdvancedRowHeadersBorderStyle.Right == DataGridViewAdvancedCellBorderStyle.OutsetDouble ?
<span> 586</span> DataGridViewAdvancedCellBorderStyle.Outset : <span>this</span><span>.AdvancedRowHeadersBorderStyle.Right;
</span><span> 587</span><span> }
</span><span> 588</span><span>else</span><span> 589</span><span> {
</span><span> 590</span> dgvabs.LeftInternal = <span>this</span><span>.AdvancedRowHeadersBorderStyle.Left;
</span><span> 591</span> dgvabs.RightInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Right;
</span><span> 592</span><span> }
</span><span> 593</span> dgvabs.TopInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Top;
</span><span> 594</span> dgvabs.BottomInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Bottom;
</span><span> 595</span><span> }
</span><span> 596</span><span>else</span><span> 597</span><span> {
</span><span> 598</span> dgvabs = <span>this</span><span>.AdvancedColumnHeadersBorderStyle;
</span><span> 599</span><span> }
</span><span> 600</span><span>break</span><span>;
</span><span> 601</span><span> 602</span><span>default</span><span>:
</span><span> 603</span> dgvabs = <span>this</span><span>.AdvancedColumnHeadersBorderStyle;
</span><span> 604</span><span>break</span><span>;
</span><span> 605</span><span> }
</span><span> 606</span><span> }
</span><span> 607</span><span>else</span><span> 608</span><span> {
</span><span> 609</span><span>switch</span> (<span>this</span><span>.AdvancedColumnHeadersBorderStyle.All)
</span><span> 610</span><span> {
</span><span> 611</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.OutsetDouble:
</span><span> 612</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.OutsetPartial:
</span><span> 613</span> dgvabs = <span>new</span><span> DataGridViewAdvancedBorderStyle();
</span><span> 614</span> dgvabs.LeftInternal = <span>this</span>.RightToLeftInternal ?<span> DataGridViewAdvancedCellBorderStyle.Outset : DataGridViewAdvancedCellBorderStyle.OutsetDouble;
</span><span> 615</span> dgvabs.RightInternal = <span>this</span>.RightToLeftInternal ?<span> DataGridViewAdvancedCellBorderStyle.OutsetDouble : DataGridViewAdvancedCellBorderStyle.Outset;
</span><span> 616</span> dgvabs.TopInternal =<span> DataGridViewAdvancedCellBorderStyle.OutsetDouble;
</span><span> 617</span> dgvabs.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span> 618</span><span>break</span><span>;
</span><span> 619</span><span> 620</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.InsetDouble:
</span><span> 621</span> dgvabs = <span>new</span><span> DataGridViewAdvancedBorderStyle();
</span><span> 622</span> dgvabs.LeftInternal = <span>this</span>.RightToLeftInternal ?<span> DataGridViewAdvancedCellBorderStyle.Inset : DataGridViewAdvancedCellBorderStyle.InsetDouble;
</span><span> 623</span> dgvabs.RightInternal = <span>this</span>.RightToLeftInternal ?<span> DataGridViewAdvancedCellBorderStyle.InsetDouble : DataGridViewAdvancedCellBorderStyle.Inset;
</span><span> 624</span> dgvabs.TopInternal =<span> DataGridViewAdvancedCellBorderStyle.InsetDouble;
</span><span> 625</span> dgvabs.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span> 626</span><span>break</span><span>;
</span><span> 627</span><span> 628</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.NotSet:
</span><span> 629</span><span>//</span><span> Since the row headers are visible, we should make sure
</span><span> 630</span><span>//</span><span> that there is a left/right border for the TopLeftHeaderCell no matter what.</span><span> 631</span><span>if</span> ((!<span>this</span>.RightToLeftInternal && <span>this</span>.AdvancedColumnHeadersBorderStyle.Left == DataGridViewAdvancedCellBorderStyle.None) ||
<span> 632</span> (<span>this</span>.RightToLeftInternal && <span>this</span>.AdvancedColumnHeadersBorderStyle.Right ==<span> DataGridViewAdvancedCellBorderStyle.None))
</span><span> 633</span><span> {
</span><span> 634</span> dgvabs = <span>new</span><span> DataGridViewAdvancedBorderStyle();
</span><span> 635</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span> 636</span><span> {
</span><span> 637</span> dgvabs.LeftInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Left;
</span><span> 638</span> dgvabs.RightInternal = <span>this</span><span>.AdvancedRowHeadersBorderStyle.Right;
</span><span> 639</span><span> }
</span><span> 640</span><span>else</span><span> 641</span><span> {
</span><span> 642</span> dgvabs.LeftInternal = <span>this</span><span>.AdvancedRowHeadersBorderStyle.Left;
</span><span> 643</span> dgvabs.RightInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Right;
</span><span> 644</span><span> }
</span><span> 645</span> dgvabs.TopInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Top;
</span><span> 646</span> dgvabs.BottomInternal = <span>this</span><span>.AdvancedColumnHeadersBorderStyle.Bottom;
</span><span> 647</span><span> }
</span><span> 648</span><span>else</span><span> 649</span><span> {
</span><span> 650</span> dgvabs = <span>this</span><span>.AdvancedColumnHeadersBorderStyle;
</span><span> 651</span><span> }
</span><span> 652</span><span>break</span><span>;
</span><span> 653</span><span> 654</span><span>default</span><span>:
</span><span> 655</span> dgvabs = <span>this</span><span>.AdvancedColumnHeadersBorderStyle;
</span><span> 656</span><span>break</span><span>;
</span><span> 657</span><span> }
</span><span> 658</span><span> }
</span><span> 659</span><span>return</span><span> dgvabs;
</span><span> 660</span><span> }
</span><span> 661</span><span> }
</span><span> 662</span><span> 663</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AdvancedCellBorderStyle"]/*‘ /></span><span> 664</span><span> [
</span><span> 665</span> Browsable(<span>false</span><span>),
</span><span> 666</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span> 667</span><span> ]
</span><span> 668</span><span>public</span><span> DataGridViewAdvancedBorderStyle AdvancedCellBorderStyle
</span><span> 669</span><span> {
</span><span> 670</span><span>get</span><span> 671</span><span> {
</span><span> 672</span><span>return</span><span>this</span><span>.advancedCellBorderStyle;
</span><span> 673</span><span> }
</span><span> 674</span><span> }
</span><span> 675</span><span> 676</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AdvancedColumnHeadersBorderStyle"]/*‘ /></span><span> 677</span><span> [
</span><span> 678</span> Browsable(<span>false</span><span>),
</span><span> 679</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span> 680</span><span> ]
</span><span> 681</span><span>public</span><span> DataGridViewAdvancedBorderStyle AdvancedColumnHeadersBorderStyle
</span><span> 682</span><span> {
</span><span> 683</span><span>get</span><span> 684</span><span> {
</span><span> 685</span><span>return</span><span>this</span><span>.advancedColumnHeadersBorderStyle;
</span><span> 686</span><span> }
</span><span> 687</span><span> }
</span><span> 688</span><span> 689</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AdvancedRowHeadersBorderStyle"]/*‘ /></span><span> 690</span><span> [
</span><span> 691</span> Browsable(<span>false</span><span>),
</span><span> 692</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span> 693</span><span> ]
</span><span> 694</span><span>public</span><span> DataGridViewAdvancedBorderStyle AdvancedRowHeadersBorderStyle
</span><span> 695</span><span> {
</span><span> 696</span><span>get</span><span> 697</span><span> {
</span><span> 698</span><span>return</span><span>this</span><span>.advancedRowHeadersBorderStyle;
</span><span> 699</span><span> }
</span><span> 700</span><span> }
</span><span> 701</span><span> 702</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToAddRows"]/*‘ /></span><span> 703</span><span> [
</span><span> 704</span> DefaultValue(<span>true</span><span>),
</span><span> 705</span><span> SRCategory(SR.CatBehavior),
</span><span> 706</span><span> SRDescription(SR.DataGridView_AllowUserToAddRowsDescr)
</span><span> 707</span><span> ]
</span><span> 708</span><span>public</span><span>bool</span><span> AllowUserToAddRows
</span><span> 709</span><span> {
</span><span> 710</span><span>get</span><span> 711</span><span> {
</span><span> 712</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_allowUserToAddRows];
</span><span> 713</span><span> }
</span><span> 714</span><span>set</span><span> 715</span><span> {
</span><span> 716</span><span>if</span> (<span>this</span>.AllowUserToAddRows !=<span> value)
</span><span> 717</span><span> {
</span><span> 718</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_allowUserToAddRows] =<span> value;
</span><span> 719</span><span>if</span> (<span>this</span>.DataSource != <span>null</span><span>)
</span><span> 720</span><span> {
</span><span> 721</span><span>this</span><span>.dataConnection.ResetCachedAllowUserToAddRowsInternal();
</span><span> 722</span><span> }
</span><span> 723</span><span> OnAllowUserToAddRowsChanged(EventArgs.Empty);
</span><span> 724</span><span> }
</span><span> 725</span><span> }
</span><span> 726</span><span> }
</span><span> 727</span><span> 728</span><span>internal</span><span>bool</span><span> AllowUserToAddRowsInternal
</span><span> 729</span><span> {
</span><span> 730</span><span>get</span><span> 731</span><span> {
</span><span> 732</span><span>if</span> (<span>this</span>.DataSource == <span>null</span><span>)
</span><span> 733</span><span> {
</span><span> 734</span><span>return</span><span>this</span><span>.AllowUserToAddRows;
</span><span> 735</span><span> }
</span><span> 736</span><span>else</span><span> 737</span><span> {
</span><span> 738</span><span>return</span><span>this</span>.AllowUserToAddRows && <span>this</span><span>.dataConnection.AllowAdd;
</span><span> 739</span><span> }
</span><span> 740</span><span> }
</span><span> 741</span><span> }
</span><span> 742</span><span> 743</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToAddRowsChanged"]/*‘ /></span><span> 744</span><span> [
</span><span> 745</span><span> SRCategory(SR.CatPropertyChanged),
</span><span> 746</span><span> SRDescription(SR.DataGridViewOnAllowUserToAddRowsChangedDescr)
</span><span> 747</span><span> ]
</span><span> 748</span><span>public</span><span>event</span><span> EventHandler AllowUserToAddRowsChanged
</span><span> 749</span><span> {
</span><span> 750</span><span> add
</span><span> 751</span><span> {
</span><span> 752</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWALLOWUSERTOADDROWSCHANGED, value);
</span><span> 753</span><span> }
</span><span> 754</span><span> remove
</span><span> 755</span><span> {
</span><span> 756</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWALLOWUSERTOADDROWSCHANGED, value);
</span><span> 757</span><span> }
</span><span> 758</span><span> }
</span><span> 759</span><span> 760</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToDeleteRows"]/*‘ /></span><span> 761</span><span> [
</span><span> 762</span> DefaultValue(<span>true</span><span>),
</span><span> 763</span><span> SRCategory(SR.CatBehavior),
</span><span> 764</span><span> SRDescription(SR.DataGridView_AllowUserToDeleteRowsDescr)
</span><span> 765</span><span> ]
</span><span> 766</span><span>public</span><span>bool</span><span> AllowUserToDeleteRows
</span><span> 767</span><span> {
</span><span> 768</span><span>get</span><span> 769</span><span> {
</span><span> 770</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_allowUserToDeleteRows];
</span><span> 771</span><span> }
</span><span> 772</span><span>set</span><span> 773</span><span> {
</span><span> 774</span><span>if</span> (<span>this</span>.AllowUserToDeleteRows !=<span> value)
</span><span> 775</span><span> {
</span><span> 776</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_allowUserToDeleteRows] =<span> value;
</span><span> 777</span><span> OnAllowUserToDeleteRowsChanged(EventArgs.Empty);
</span><span> 778</span><span> }
</span><span> 779</span><span> }
</span><span> 780</span><span> }
</span><span> 781</span><span> 782</span><span>internal</span><span>bool</span><span> AllowUserToDeleteRowsInternal
</span><span> 783</span><span> {
</span><span> 784</span><span>get</span><span> 785</span><span> {
</span><span> 786</span><span>if</span> (<span>this</span>.DataSource == <span>null</span><span>)
</span><span> 787</span><span> {
</span><span> 788</span><span>return</span><span>this</span><span>.AllowUserToDeleteRows;
</span><span> 789</span><span> }
</span><span> 790</span><span>else</span><span> 791</span><span> {
</span><span> 792</span><span>return</span><span>this</span>.AllowUserToDeleteRows && <span>this</span><span>.dataConnection.AllowRemove;
</span><span> 793</span><span> }
</span><span> 794</span><span> }
</span><span> 795</span><span> }
</span><span> 796</span><span> 797</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToDeleteRowsChanged"]/*‘ /></span><span> 798</span><span> [
</span><span> 799</span><span> SRCategory(SR.CatPropertyChanged),
</span><span> 800</span><span> SRDescription(SR.DataGridViewOnAllowUserToDeleteRowsChangedDescr)
</span><span> 801</span><span> ]
</span><span> 802</span><span>public</span><span>event</span><span> EventHandler AllowUserToDeleteRowsChanged
</span><span> 803</span><span> {
</span><span> 804</span><span> add
</span><span> 805</span><span> {
</span><span> 806</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWALLOWUSERTODELETEROWSCHANGED, value);
</span><span> 807</span><span> }
</span><span> 808</span><span> remove
</span><span> 809</span><span> {
</span><span> 810</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWALLOWUSERTODELETEROWSCHANGED, value);
</span><span> 811</span><span> }
</span><span> 812</span><span> }
</span><span> 813</span><span> 814</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToOrderColumns"]/*‘ /></span><span> 815</span><span> [
</span><span> 816</span> DefaultValue(<span>false</span><span>),
</span><span> 817</span><span> SRCategory(SR.CatBehavior),
</span><span> 818</span><span> SRDescription(SR.DataGridView_AllowUserToOrderColumnsDescr)
</span><span> 819</span><span> ]
</span><span> 820</span><span>public</span><span>bool</span><span> AllowUserToOrderColumns
</span><span> 821</span><span> {
</span><span> 822</span><span>get</span><span> 823</span><span> {
</span><span> 824</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_allowUserToOrderColumns];
</span><span> 825</span><span> }
</span><span> 826</span><span>set</span><span> 827</span><span> {
</span><span> 828</span><span>if</span> (<span>this</span>.AllowUserToOrderColumns !=<span> value)
</span><span> 829</span><span> {
</span><span> 830</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_allowUserToOrderColumns] =<span> value;
</span><span> 831</span><span> OnAllowUserToOrderColumnsChanged(EventArgs.Empty);
</span><span> 832</span><span> }
</span><span> 833</span><span> }
</span><span> 834</span><span> }
</span><span> 835</span><span> 836</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToOrderColumnsChanged"]/*‘ /></span><span> 837</span><span> [
</span><span> 838</span><span> SRCategory(SR.CatPropertyChanged),
</span><span> 839</span><span> SRDescription(SR.DataGridViewOnAllowUserToOrderColumnsChangedDescr)
</span><span> 840</span><span> ]
</span><span> 841</span><span>public</span><span>event</span><span> EventHandler AllowUserToOrderColumnsChanged
</span><span> 842</span><span> {
</span><span> 843</span><span> add
</span><span> 844</span><span> {
</span><span> 845</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWALLOWUSERTOORDERCOLUMNSCHANGED, value);
</span><span> 846</span><span> }
</span><span> 847</span><span> remove
</span><span> 848</span><span> {
</span><span> 849</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWALLOWUSERTOORDERCOLUMNSCHANGED, value);
</span><span> 850</span><span> }
</span><span> 851</span><span> }
</span><span> 852</span><span> 853</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToResizeColumns"]/*‘ /></span><span> 854</span><span>///</span><span><devdoc></span><span> 855</span><span>///</span><span><para></span><span> 856</span><span>///</span><span> Gets or sets a global value indicating if the dataGridView‘s columns are resizable with the mouse.
</span><span> 857</span><span>///</span><span> The resizable aspect of a column can be overridden by DataGridViewColumn.Resizable.
</span><span> 858</span><span>///</span><span></para></span><span> 859</span><span>///</span><span></devdoc></span><span> 860</span><span> [
</span><span> 861</span> DefaultValue(<span>true</span><span>),
</span><span> 862</span><span> SRCategory(SR.CatBehavior),
</span><span> 863</span><span> SRDescription(SR.DataGridView_AllowUserToResizeColumnsDescr)
</span><span> 864</span><span> ]
</span><span> 865</span><span>public</span><span>bool</span><span> AllowUserToResizeColumns
</span><span> 866</span><span> {
</span><span> 867</span><span>get</span><span> 868</span><span> {
</span><span> 869</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_allowUserToResizeColumns];
</span><span> 870</span><span> }
</span><span> 871</span><span>set</span><span> 872</span><span> {
</span><span> 873</span><span>if</span> (<span>this</span>.AllowUserToResizeColumns !=<span> value)
</span><span> 874</span><span> {
</span><span> 875</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_allowUserToResizeColumns] =<span> value;
</span><span> 876</span><span> OnAllowUserToResizeColumnsChanged(EventArgs.Empty);
</span><span> 877</span><span> }
</span><span> 878</span><span> }
</span><span> 879</span><span> }
</span><span> 880</span><span> 881</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToResizeColumnsChanged"]/*‘ /></span><span> 882</span><span> [
</span><span> 883</span><span> SRCategory(SR.CatPropertyChanged),
</span><span> 884</span><span> SRDescription(SR.DataGridViewOnAllowUserToResizeColumnsChangedDescr)
</span><span> 885</span><span> ]
</span><span> 886</span><span>public</span><span>event</span><span> EventHandler AllowUserToResizeColumnsChanged
</span><span> 887</span><span> {
</span><span> 888</span><span> add
</span><span> 889</span><span> {
</span><span> 890</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWALLOWUSERTORESIZECOLUMNSCHANGED, value);
</span><span> 891</span><span> }
</span><span> 892</span><span> remove
</span><span> 893</span><span> {
</span><span> 894</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWALLOWUSERTORESIZECOLUMNSCHANGED, value);
</span><span> 895</span><span> }
</span><span> 896</span><span> }
</span><span> 897</span><span> 898</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToResizeRows"]/*‘ /></span><span> 899</span><span>///</span><span><devdoc></span><span> 900</span><span>///</span><span><para></span><span> 901</span><span>///</span><span> Gets or sets a global value indicating if the dataGridView‘s rows are resizable with the mouse.
</span><span> 902</span><span>///</span><span> The resizable aspect of a row can be overridden by DataGridViewRow.Resizable.
</span><span> 903</span><span>///</span><span></para></span><span> 904</span><span>///</span><span></devdoc></span><span> 905</span><span> [
</span><span> 906</span> DefaultValue(<span>true</span><span>),
</span><span> 907</span><span> SRCategory(SR.CatBehavior),
</span><span> 908</span><span> SRDescription(SR.DataGridView_AllowUserToResizeRowsDescr)
</span><span> 909</span><span> ]
</span><span> 910</span><span>public</span><span>bool</span><span> AllowUserToResizeRows
</span><span> 911</span><span> {
</span><span> 912</span><span>get</span><span> 913</span><span> {
</span><span> 914</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_allowUserToResizeRows];
</span><span> 915</span><span> }
</span><span> 916</span><span>set</span><span> 917</span><span> {
</span><span> 918</span><span>if</span> (<span>this</span>.AllowUserToResizeRows !=<span> value)
</span><span> 919</span><span> {
</span><span> 920</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_allowUserToResizeRows] =<span> value;
</span><span> 921</span><span> OnAllowUserToResizeRowsChanged(EventArgs.Empty);
</span><span> 922</span><span> }
</span><span> 923</span><span> }
</span><span> 924</span><span> }
</span><span> 925</span><span> 926</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AllowUserToResizeRowsChanged"]/*‘ /></span><span> 927</span><span> [
</span><span> 928</span><span> SRCategory(SR.CatPropertyChanged),
</span><span> 929</span><span> SRDescription(SR.DataGridViewOnAllowUserToResizeRowsChangedDescr)
</span><span> 930</span><span> ]
</span><span> 931</span><span>public</span><span>event</span><span> EventHandler AllowUserToResizeRowsChanged
</span><span> 932</span><span> {
</span><span> 933</span><span> add
</span><span> 934</span><span> {
</span><span> 935</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWALLOWUSERTORESIZEROWSCHANGED, value);
</span><span> 936</span><span> }
</span><span> 937</span><span> remove
</span><span> 938</span><span> {
</span><span> 939</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWALLOWUSERTORESIZEROWSCHANGED, value);
</span><span> 940</span><span> }
</span><span> 941</span><span> }
</span><span> 942</span><span> 943</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AlternatingRowsDefaultCellStyle"]/*‘ /></span><span> 944</span><span> [
</span><span> 945</span><span> SRCategory(SR.CatAppearance),
</span><span> 946</span><span> SRDescription(SR.DataGridView_AlternatingRowsDefaultCellStyleDescr)
</span><span> 947</span><span> ]
</span><span> 948</span><span>public</span><span> DataGridViewCellStyle AlternatingRowsDefaultCellStyle
</span><span> 949</span><span> {
</span><span> 950</span><span>get</span><span> 951</span><span> {
</span><span> 952</span><span>if</span> (<span>this</span>.alternatingRowsDefaultCellStyle == <span>null</span><span>)
</span><span> 953</span><span> {
</span><span> 954</span><span>this</span>.alternatingRowsDefaultCellStyle = <span>new</span><span> DataGridViewCellStyle();
</span><span> 955</span><span>this</span>.alternatingRowsDefaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.AlternatingRows);
</span><span> 956</span><span> }
</span><span> 957</span><span>return</span><span>this</span><span>.alternatingRowsDefaultCellStyle;
</span><span> 958</span><span> }
</span><span> 959</span><span>set</span><span> 960</span><span> {
</span><span> 961</span> DataGridViewCellStyle cs = <span>this</span><span>.AlternatingRowsDefaultCellStyle;
</span><span> 962</span><span> cs.RemoveScope(DataGridViewCellStyleScopes.AlternatingRows);
</span><span> 963</span><span>this</span>.alternatingRowsDefaultCellStyle =<span> value;
</span><span> 964</span><span>if</span> (value != <span>null</span><span>)
</span><span> 965</span><span> {
</span><span> 966</span><span>this</span>.alternatingRowsDefaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.AlternatingRows);
</span><span> 967</span><span> }
</span><span> 968</span> DataGridViewCellStyleDifferences dgvcsc = cs.GetDifferencesFrom(<span>this</span><span>.AlternatingRowsDefaultCellStyle);
</span><span> 969</span><span>if</span> (dgvcsc !=<span> DataGridViewCellStyleDifferences.None)
</span><span> 970</span><span> {
</span><span> 971</span><span>this</span>.CellStyleChangedEventArgs.ChangeAffectsPreferredSize = (dgvcsc ==<span> DataGridViewCellStyleDifferences.AffectPreferredSize);
</span><span> 972</span> OnAlternatingRowsDefaultCellStyleChanged(<span>this</span><span>.CellStyleChangedEventArgs);
</span><span> 973</span><span> }
</span><span> 974</span><span> }
</span><span> 975</span><span> }
</span><span> 976</span><span> 977</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AlternatingRowsDefaultCellStyleChanged"]/*‘ /></span><span> 978</span><span> [
</span><span> 979</span><span> SRCategory(SR.CatPropertyChanged),
</span><span> 980</span><span> SRDescription(SR.DataGridViewAlternatingRowsDefaultCellStyleChangedDescr)
</span><span> 981</span><span> ]
</span><span> 982</span><span>public</span><span>event</span><span> EventHandler AlternatingRowsDefaultCellStyleChanged
</span><span> 983</span><span> {
</span><span> 984</span><span> add
</span><span> 985</span><span> {
</span><span> 986</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWALTERNATINGROWSDEFAULTCELLSTYLECHANGED, value);
</span><span> 987</span><span> }
</span><span> 988</span><span> remove
</span><span> 989</span><span> {
</span><span> 990</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWALTERNATINGROWSDEFAULTCELLSTYLECHANGED, value);
</span><span> 991</span><span> }
</span><span> 992</span><span> }
</span><span> 993</span><span> 994</span><span>internal</span><span>bool</span><span> ApplyVisualStylesToInnerCells
</span><span> 995</span><span> {
</span><span> 996</span><span>get</span><span> 997</span><span> {
</span><span> 998</span><span>return</span><span> Application.RenderWithVisualStyles;
</span><span> 999</span><span> }
</span><span>1000</span><span> }
</span><span>1001</span><span>1002</span><span>internal</span><span>bool</span><span> ApplyVisualStylesToHeaderCells
</span><span>1003</span><span> {
</span><span>1004</span><span>get</span><span>1005</span><span> {
</span><span>1006</span><span>return</span> Application.RenderWithVisualStyles && <span>this</span><span>.EnableHeadersVisualStyles;
</span><span>1007</span><span> }
</span><span>1008</span><span> }
</span><span>1009</span><span>1010</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoGenerateColumns"]/*‘ /></span><span>1011</span><span>///</span><span><devdoc></span><span>1012</span><span>///</span><span><para></span><span>1013</span><span>///</span><span></para></span><span>1014</span><span>///</span><span></devdoc></span><span>1015</span><span> [
</span><span>1016</span> Browsable(<span>false</span><span>),
</span><span>1017</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>1018</span> DefaultValue(<span>true</span><span>)
</span><span>1019</span><span> ]
</span><span>1020</span><span>public</span><span>bool</span><span> AutoGenerateColumns
</span><span>1021</span><span> {
</span><span>1022</span><span>get</span><span>1023</span><span> {
</span><span>1024</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_autoGenerateColumns];
</span><span>1025</span><span> }
</span><span>1026</span><span>set</span><span>{
</span><span>1027</span><span>if</span> (<span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_autoGenerateColumns] !=<span> value)
</span><span>1028</span><span> {
</span><span>1029</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_autoGenerateColumns] =<span> value;
</span><span>1030</span><span> OnAutoGenerateColumnsChanged(EventArgs.Empty);
</span><span>1031</span><span> }
</span><span>1032</span><span> }
</span><span>1033</span><span> }
</span><span>1034</span><span>1035</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoGenerateColumnsChanged"]/*‘ /></span><span>1036</span><span> [
</span><span>1037</span> Browsable(<span>false</span><span>),
</span><span>1038</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>1039</span><span> ]
</span><span>1040</span><span>public</span><span>event</span><span> EventHandler AutoGenerateColumnsChanged
</span><span>1041</span><span> {
</span><span>1042</span><span> add
</span><span>1043</span><span> {
</span><span>1044</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWAUTOGENERATECOLUMNSCHANGED, value);
</span><span>1045</span><span> }
</span><span>1046</span><span> remove
</span><span>1047</span><span> {
</span><span>1048</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWAUTOGENERATECOLUMNSCHANGED, value);
</span><span>1049</span><span> }
</span><span>1050</span><span> }
</span><span>1051</span><span>1052</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoSize"]/*‘ /></span><span>1053</span><span>///</span><span><devdoc></span><span>1054</span><span>///</span><span><para></span><span> Overriding base implementation for perf gains. </span><span></para></span><span>1055</span><span>///</span><span></devdoc></span><span>1056</span><span>public</span><span>override</span><span>bool</span><span> AutoSize
</span><span>1057</span><span> {
</span><span>1058</span><span>get</span><span>1059</span><span> {
</span><span>1060</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isAutoSized];
</span><span>1061</span><span> }
</span><span>1062</span><span>set</span><span>1063</span><span> {
</span><span>1064</span><span>base</span>.AutoSize =<span> value;
</span><span>1065</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isAutoSized] =<span> value;
</span><span>1066</span><span> }
</span><span>1067</span><span> }
</span><span>1068</span><span>1069</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoSizeColumnsMode"]/*‘ /></span><span>1070</span><span>///</span><span><devdoc></span><span>1071</span><span>///</span><span><para></span><span> Gets or sets the columns‘ autosizing mode. Standard inheritance model is used:
</span><span>1072</span><span>///</span><span> Columns with AutoSizeMode property set to NotSet will use this auto size mode.
</span><span>1073</span><span>///</span><span></para></span><span>1074</span><span>///</span><span></devdoc></span><span>1075</span><span> [
</span><span>1076</span><span> DefaultValue(DataGridViewAutoSizeColumnsMode.None),
</span><span>1077</span><span> SRCategory(SR.CatLayout),
</span><span>1078</span><span> SRDescription(SR.DataGridView_AutoSizeColumnsModeDescr)
</span><span>1079</span><span> ]
</span><span>1080</span><span>public</span><span> DataGridViewAutoSizeColumnsMode AutoSizeColumnsMode
</span><span>1081</span><span> {
</span><span>1082</span><span>get</span><span>1083</span><span> {
</span><span>1084</span><span>return</span><span>this</span><span>.autoSizeColumnsMode;
</span><span>1085</span><span> }
</span><span>1086</span><span>1087</span><span>set</span><span>1088</span><span> {
</span><span>1089</span><span>switch</span><span> (value)
</span><span>1090</span><span> {
</span><span>1091</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.None:
</span><span>1092</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.ColumnHeader:
</span><span>1093</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader:
</span><span>1094</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.AllCells:
</span><span>1095</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader:
</span><span>1096</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.DisplayedCells:
</span><span>1097</span><span>case</span><span> DataGridViewAutoSizeColumnsMode.Fill:
</span><span>1098</span><span>break</span><span>;
</span><span>1099</span><span>default</span><span>:
</span><span>1100</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewAutoSizeColumnsMode));
</span><span>1101</span><span> }
</span><span>1102</span><span>1103</span><span>1104</span><span>if</span> (<span>this</span>.autoSizeColumnsMode !=<span> value)
</span><span>1105</span><span> {
</span><span>1106</span><span>foreach</span> (DataGridViewColumn dataGridViewColumn <span>in</span><span>this</span><span>.Columns)
</span><span>1107</span><span> {
</span><span>1108</span><span>if</span> (dataGridViewColumn.AutoSizeMode == DataGridViewAutoSizeColumnMode.NotSet &&<span> dataGridViewColumn.Visible)
</span><span>1109</span><span> {
</span><span>1110</span><span>//</span><span> Make sure there is no visible column which would have an inherited autosize mode based on the header only.</span><span>1111</span><span>if</span> (value == DataGridViewAutoSizeColumnsMode.ColumnHeader && !<span>this</span><span>.ColumnHeadersVisible)
</span><span>1112</span><span> {
</span><span>1113</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CannotAutoSizeColumnsInvisibleColumnHeaders));
</span><span>1114</span><span> }
</span><span>1115</span><span>//</span><span> Make sure there is no visible frozen column which would have a Fill inherited autosize mode.</span><span>1116</span><span>if</span> (value == DataGridViewAutoSizeColumnsMode.Fill &&<span> dataGridViewColumn.Frozen)
</span><span>1117</span><span> {
</span><span>1118</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CannotAutoFillFrozenColumns));
</span><span>1119</span><span> }
</span><span>1120</span><span> }
</span><span>1121</span><span> }
</span><span>1122</span> DataGridViewAutoSizeColumnMode[] previousModes = <span>new</span> DataGridViewAutoSizeColumnMode[<span>this</span><span>.Columns.Count];
</span><span>1123</span><span>foreach</span> (DataGridViewColumn dataGridViewColumn <span>in</span><span>this</span><span>.Columns)
</span><span>1124</span><span> {
</span><span>1125</span><span>/*</span><span>DataGridViewAutoSizeColumnMode previousInheritedMode = dataGridViewColumn.InheritedAutoSizeMode;
</span><span>1126</span><span> bool previousInheritedModeAutoSized = previousInheritedMode != DataGridViewAutoSizeColumnMode.Fill &&
</span><span>1127</span><span> previousInheritedMode != DataGridViewAutoSizeColumnMode.None &&
</span><span>1128</span><span> previousInheritedMode != DataGridViewAutoSizeColumnMode.NotSet;</span><span>*/</span><span>1129</span> previousModes[dataGridViewColumn.Index] =<span> dataGridViewColumn.InheritedAutoSizeMode;
</span><span>1130</span><span> }
</span><span>1131</span> DataGridViewAutoSizeColumnsModeEventArgs dgvcasme = <span>new</span><span> DataGridViewAutoSizeColumnsModeEventArgs(previousModes);
</span><span>1132</span><span>this</span>.autoSizeColumnsMode =<span> value;
</span><span>1133</span><span> OnAutoSizeColumnsModeChanged(dgvcasme);
</span><span>1134</span><span> }
</span><span>1135</span><span> }
</span><span>1136</span><span> }
</span><span>1137</span><span>1138</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoSizeColumnsModeChanged"]/*‘ /></span><span>1139</span><span> [
</span><span>1140</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1141</span><span> SRDescription(SR.DataGridViewAutoSizeColumnsModeChangedDescr)
</span><span>1142</span><span> ]
</span><span>1143</span><span>public</span><span>event</span><span> DataGridViewAutoSizeColumnsModeEventHandler AutoSizeColumnsModeChanged
</span><span>1144</span><span> {
</span><span>1145</span><span> add
</span><span>1146</span><span> {
</span><span>1147</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWAUTOSIZECOLUMNSMODECHANGED, value);
</span><span>1148</span><span> }
</span><span>1149</span><span> remove
</span><span>1150</span><span> {
</span><span>1151</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWAUTOSIZECOLUMNSMODECHANGED, value);
</span><span>1152</span><span> }
</span><span>1153</span><span> }
</span><span>1154</span><span>1155</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoSizeRowsMode"]/*‘ /></span><span>1156</span><span>///</span><span><devdoc></span><span>1157</span><span>///</span><span><para></span><span> Gets or sets the rows‘ autosizing mode. </span><span></para></span><span>1158</span><span>///</span><span></devdoc></span><span>1159</span><span> [
</span><span>1160</span><span> DefaultValue(DataGridViewAutoSizeRowsMode.None),
</span><span>1161</span><span> SRCategory(SR.CatLayout),
</span><span>1162</span><span> SRDescription(SR.DataGridView_AutoSizeRowsModeDescr)
</span><span>1163</span><span> ]
</span><span>1164</span><span>public</span><span> DataGridViewAutoSizeRowsMode AutoSizeRowsMode
</span><span>1165</span><span> {
</span><span>1166</span><span>get</span><span>1167</span><span> {
</span><span>1168</span><span>return</span><span>this</span><span>.autoSizeRowsMode;
</span><span>1169</span><span> }
</span><span>1170</span><span>set</span><span>1171</span><span> {
</span><span>1172</span><span>switch</span><span> (value)
</span><span>1173</span><span> {
</span><span>1174</span><span>case</span><span> DataGridViewAutoSizeRowsMode.None:
</span><span>1175</span><span>case</span><span> DataGridViewAutoSizeRowsMode.AllHeaders:
</span><span>1176</span><span>case</span><span> DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders:
</span><span>1177</span><span>case</span><span> DataGridViewAutoSizeRowsMode.AllCells:
</span><span>1178</span><span>case</span><span> DataGridViewAutoSizeRowsMode.DisplayedHeaders:
</span><span>1179</span><span>case</span><span> DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders:
</span><span>1180</span><span>case</span><span> DataGridViewAutoSizeRowsMode.DisplayedCells:
</span><span>1181</span><span>break</span><span>;
</span><span>1182</span><span>default</span><span>:
</span><span>1183</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewAutoSizeRowsMode));
</span><span>1184</span><span> }
</span><span>1185</span><span>if</span> ((value == DataGridViewAutoSizeRowsMode.AllHeaders || value == DataGridViewAutoSizeRowsMode.DisplayedHeaders) &&
<span>1186</span> !<span>this</span><span>.RowHeadersVisible)
</span><span>1187</span><span> {
</span><span>1188</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CannotAutoSizeRowsInvisibleRowHeader));
</span><span>1189</span><span> }
</span><span>1190</span><span>if</span> (<span>this</span>.autoSizeRowsMode !=<span> value)
</span><span>1191</span><span> {
</span><span>1192</span> DataGridViewAutoSizeModeEventArgs dgvasme = <span>new</span> DataGridViewAutoSizeModeEventArgs(<span>this</span>.autoSizeRowsMode !=<span> DataGridViewAutoSizeRowsMode.None);
</span><span>1193</span><span>this</span>.autoSizeRowsMode =<span> value;
</span><span>1194</span><span> OnAutoSizeRowsModeChanged(dgvasme);
</span><span>1195</span><span> }
</span><span>1196</span><span> }
</span><span>1197</span><span> }
</span><span>1198</span><span>1199</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoSizeRowsModeChanged"]/*‘ /></span><span>1200</span><span> [
</span><span>1201</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1202</span><span> SRDescription(SR.DataGridViewAutoSizeRowsModeChangedDescr)
</span><span>1203</span><span> ]
</span><span>1204</span><span>public</span><span>event</span><span> DataGridViewAutoSizeModeEventHandler AutoSizeRowsModeChanged
</span><span>1205</span><span> {
</span><span>1206</span><span> add
</span><span>1207</span><span> {
</span><span>1208</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWAUTOSIZEROWSMODECHANGED, value);
</span><span>1209</span><span> }
</span><span>1210</span><span> remove
</span><span>1211</span><span> {
</span><span>1212</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWAUTOSIZEROWSMODECHANGED, value);
</span><span>1213</span><span> }
</span><span>1214</span><span> }
</span><span>1215</span><span>1216</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackColor"]/*‘ /></span><span>1217</span><span>///</span><span><internalonly/></span><span>1218</span><span> [
</span><span>1219</span> Browsable(<span>false</span><span>),
</span><span>1220</span><span> EditorBrowsable(EditorBrowsableState.Never),
</span><span>1221</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>1222</span><span> ]
</span><span>1223</span><span>public</span><span>override</span><span> Color BackColor
</span><span>1224</span><span> {
</span><span>1225</span><span>get</span><span>1226</span><span> {
</span><span>1227</span><span>return</span><span>base</span><span>.BackColor;
</span><span>1228</span><span> }
</span><span>1229</span><span>set</span><span>1230</span><span> {
</span><span>1231</span><span>base</span>.BackColor =<span> value;
</span><span>1232</span><span> }
</span><span>1233</span><span> }
</span><span>1234</span><span>1235</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackColorChanged"]/*‘ /></span><span>1236</span><span>///</span><span><internalonly/></span><span>1237</span><span> [
</span><span>1238</span> Browsable(<span>false</span><span>),
</span><span>1239</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>1240</span><span> ]
</span><span>1241</span><span>new</span><span>public</span><span>event</span><span> EventHandler BackColorChanged
</span><span>1242</span><span> {
</span><span>1243</span><span> add
</span><span>1244</span><span> {
</span><span>1245</span><span>base</span>.BackColorChanged +=<span> value;
</span><span>1246</span><span> }
</span><span>1247</span><span> remove
</span><span>1248</span><span> {
</span><span>1249</span><span>base</span>.BackColorChanged -=<span> value;
</span><span>1250</span><span> }
</span><span>1251</span><span> }
</span><span>1252</span><span>1253</span><span>internal</span><span> SolidBrush BackgroundBrush
</span><span>1254</span><span> {
</span><span>1255</span><span>get</span><span>1256</span><span> {
</span><span>1257</span><span>return</span><span>this</span><span>.backgroundBrush;
</span><span>1258</span><span> }
</span><span>1259</span><span> }
</span><span>1260</span><span>1261</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackgroundColor"]/*‘ /></span><span>1262</span><span>///</span><span><devdoc></span><span>1263</span><span>///</span><span><para></span><span>Gets or sets the background color of the dataGridView.</span><span></para></span><span>1264</span><span>///</span><span></devdoc></span><span>1265</span><span> [
</span><span>1266</span><span> SRCategory(SR.CatAppearance),
</span><span>1267</span><span> SRDescription(SR.DataGridViewBackgroundColorDescr)
</span><span>1268</span><span> ]
</span><span>1269</span><span>public</span><span> Color BackgroundColor
</span><span>1270</span><span> {
</span><span>1271</span><span>get</span><span>1272</span><span> {
</span><span>1273</span><span>return</span><span>this</span><span>.backgroundBrush.Color;
</span><span>1274</span><span> }
</span><span>1275</span><span>set</span><span>1276</span><span> {
</span><span>1277</span><span>if</span><span> (value.IsEmpty)
</span><span>1278</span><span> {
</span><span>1279</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_EmptyColor, <span>"</span><span>BackgroundColor</span><span>"</span><span>));
</span><span>1280</span><span> }
</span><span>1281</span><span>if</span> (value.A < <span>255</span><span>)
</span><span>1282</span><span> {
</span><span>1283</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_TransparentColor, <span>"</span><span>BackgroundColor</span><span>"</span><span>));
</span><span>1284</span><span> }
</span><span>1285</span><span>if</span> (!value.Equals(<span>this</span><span>.backgroundBrush.Color))
</span><span>1286</span><span> {
</span><span>1287</span><span>this</span>.backgroundBrush = <span>new</span><span> SolidBrush(value);
</span><span>1288</span><span> OnBackgroundColorChanged(EventArgs.Empty);
</span><span>1289</span><span> }
</span><span>1290</span><span> }
</span><span>1291</span><span> }
</span><span>1292</span><span>1293</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackgroundColorChanged"]/*‘ /></span><span>1294</span><span> [
</span><span>1295</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1296</span><span> SRDescription(SR.DataGridViewBackgroundColorChangedDescr)
</span><span>1297</span><span> ]
</span><span>1298</span><span>public</span><span>event</span><span> EventHandler BackgroundColorChanged
</span><span>1299</span><span> {
</span><span>1300</span><span> add
</span><span>1301</span><span> {
</span><span>1302</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWBACKGROUNDCOLORCHANGED, value);
</span><span>1303</span><span> }
</span><span>1304</span><span> remove
</span><span>1305</span><span> {
</span><span>1306</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWBACKGROUNDCOLORCHANGED, value);
</span><span>1307</span><span> }
</span><span>1308</span><span> }
</span><span>1309</span><span>1310</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackgroundImage"]/*‘ /></span><span>1311</span><span> [
</span><span>1312</span> Browsable(<span>false</span><span>),
</span><span>1313</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>1314</span><span> ]
</span><span>1315</span><span>public</span><span>override</span><span> Image BackgroundImage
</span><span>1316</span><span> {
</span><span>1317</span><span>get</span><span>1318</span><span> {
</span><span>1319</span><span>return</span><span>base</span><span>.BackgroundImage;
</span><span>1320</span><span> }
</span><span>1321</span><span>set</span><span>1322</span><span> {
</span><span>1323</span><span>base</span>.BackgroundImage =<span> value;
</span><span>1324</span><span> }
</span><span>1325</span><span> }
</span><span>1326</span><span>1327</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackgroundImageLayout"]/*‘ /></span><span>1328</span><span> [
</span><span>1329</span> Browsable(<span>false</span><span>),
</span><span>1330</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>1331</span><span> ]
</span><span>1332</span><span>public</span><span>override</span><span> ImageLayout BackgroundImageLayout
</span><span>1333</span><span> {
</span><span>1334</span><span>get</span><span>1335</span><span> {
</span><span>1336</span><span>return</span><span>base</span><span>.BackgroundImageLayout;
</span><span>1337</span><span> }
</span><span>1338</span><span>set</span><span>1339</span><span> {
</span><span>1340</span><span>base</span>.BackgroundImageLayout =<span> value;
</span><span>1341</span><span> }
</span><span>1342</span><span> }
</span><span>1343</span><span>1344</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackgroundImageChanged"]/*‘ /></span><span>1345</span><span> [
</span><span>1346</span> Browsable(<span>false</span><span>),
</span><span>1347</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>1348</span><span> ]
</span><span>1349</span><span>new</span><span>public</span><span>event</span><span> EventHandler BackgroundImageChanged
</span><span>1350</span><span> {
</span><span>1351</span><span> add
</span><span>1352</span><span> {
</span><span>1353</span><span>base</span>.BackgroundImageChanged +=<span> value;
</span><span>1354</span><span> }
</span><span>1355</span><span> remove
</span><span>1356</span><span> {
</span><span>1357</span><span>base</span>.BackgroundImageChanged -=<span> value;
</span><span>1358</span><span> }
</span><span>1359</span><span> }
</span><span>1360</span><span>1361</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BackgroundImageLayoutChanged"]/*‘ /></span><span>1362</span><span> [
</span><span>1363</span> Browsable(<span>false</span><span>),
</span><span>1364</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>1365</span><span> ]
</span><span>1366</span><span>new</span><span>public</span><span>event</span><span> EventHandler BackgroundImageLayoutChanged
</span><span>1367</span><span> {
</span><span>1368</span><span> add
</span><span>1369</span><span> {
</span><span>1370</span><span>base</span>.BackgroundImageLayoutChanged +=<span> value;
</span><span>1371</span><span> }
</span><span>1372</span><span> remove
</span><span>1373</span><span> {
</span><span>1374</span><span>base</span>.BackgroundImageLayoutChanged -=<span> value;
</span><span>1375</span><span> }
</span><span>1376</span><span> }
</span><span>1377</span><span>1378</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ShouldSerializeBackgroundColor"]/*‘ /></span><span>1379</span><span>private</span><span>bool</span><span> ShouldSerializeBackgroundColor()
</span><span>1380</span><span> {
</span><span>1381</span><span>return</span> !<span>this</span><span>.BackgroundColor.Equals(DefaultBackgroundBrush.Color);
</span><span>1382</span><span> }
</span><span>1383</span><span>1384</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BorderStyle"]/*‘ /></span><span>1385</span><span> [
</span><span>1386</span><span> DefaultValue(BorderStyle.FixedSingle),
</span><span>1387</span><span> SRCategory(SR.CatAppearance),
</span><span>1388</span><span> SRDescription(SR.DataGridView_BorderStyleDescr)
</span><span>1389</span><span> ]
</span><span>1390</span><span>public</span><span> BorderStyle BorderStyle
</span><span>1391</span><span> {
</span><span>1392</span><span>get</span><span>1393</span><span> {
</span><span>1394</span><span>return</span><span>this</span><span>.borderStyle;
</span><span>1395</span><span> }
</span><span>1396</span><span>set</span><span>1397</span><span> {
</span><span>1398</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x2</span><span>1399</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)BorderStyle.None, (<span>int</span><span>)BorderStyle.Fixed3D)){
</span><span>1400</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(BorderStyle));
</span><span>1401</span><span> }
</span><span>1402</span><span>if</span> (<span>this</span>.borderStyle !=<span> value)
</span><span>1403</span><span> {
</span><span>1404</span><span>using</span> (LayoutTransaction.CreateTransactionIf(<span>this</span>.AutoSize, <span>this</span>.ParentInternal, <span>this</span><span>, PropertyNames.BorderStyle))
</span><span>1405</span><span> {
</span><span>1406</span><span>this</span>.borderStyle =<span> value;
</span><span>1407</span><span>if</span> (!<span>this</span><span>.AutoSize)
</span><span>1408</span><span> {
</span><span>1409</span> PerformLayoutPrivate(<span>false</span><span>/*</span><span>useRowShortcut</span><span>*/</span>, <span>false</span><span>/*</span><span>computeVisibleRows</span><span>*/</span>, <span>true</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span>, <span>true</span><span>/*</span><span>repositionEditingControl</span><span>*/</span><span>);
</span><span>1410</span><span> }
</span><span>1411</span><span> Invalidate();
</span><span>1412</span><span> OnBorderStyleChanged(EventArgs.Empty);
</span><span>1413</span><span> }
</span><span>1414</span><span> }
</span><span>1415</span><span> }
</span><span>1416</span><span> }
</span><span>1417</span><span>1418</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BorderStyleChanged"]/*‘ /></span><span>1419</span><span> [
</span><span>1420</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1421</span><span> SRDescription(SR.DataGridViewBorderStyleChangedDescr)
</span><span>1422</span><span> ]
</span><span>1423</span><span>public</span><span>event</span><span> EventHandler BorderStyleChanged
</span><span>1424</span><span> {
</span><span>1425</span><span> add
</span><span>1426</span><span> {
</span><span>1427</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWBORDERSTYLECHANGED, value);
</span><span>1428</span><span> }
</span><span>1429</span><span> remove
</span><span>1430</span><span> {
</span><span>1431</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWBORDERSTYLECHANGED, value);
</span><span>1432</span><span> }
</span><span>1433</span><span> }
</span><span>1434</span><span>1435</span><span>private</span><span>int</span><span> BorderWidth
</span><span>1436</span><span> {
</span><span>1437</span><span>get</span><span>1438</span><span> {
</span><span>1439</span><span>if</span> (<span>this</span>.BorderStyle ==<span> BorderStyle.Fixed3D)
</span><span>1440</span><span> {
</span><span>1441</span><span>return</span> Application.RenderWithVisualStyles ? <span>1</span><span> : SystemInformation.Border3DSize.Width;
</span><span>1442</span><span> }
</span><span>1443</span><span>else</span><span>if</span> (<span>this</span>.BorderStyle ==<span> BorderStyle.FixedSingle)
</span><span>1444</span><span> {
</span><span>1445</span><span>return</span><span>1</span><span>;
</span><span>1446</span><span> }
</span><span>1447</span><span>else</span><span>1448</span><span> {
</span><span>1449</span><span>return</span><span>0</span><span>;
</span><span>1450</span><span> }
</span><span>1451</span><span> }
</span><span>1452</span><span> }
</span><span>1453</span><span>1454</span><span>//</span><span> Ime can be shown when there is a read-write current cell.</span><span>1455</span><span>protected</span><span>override</span><span>bool</span><span> CanEnableIme
</span><span>1456</span><span> {
</span><span>1457</span><span>get</span><span>1458</span><span> {
</span><span>1459</span><span>bool</span> canEnable = <span>false</span><span>;
</span><span>1460</span><span>1461</span> Debug.WriteLineIf( CompModSwitches.ImeMode.Level >= TraceLevel.Info, <span>"</span><span>Inside get_CanEnableIme(), this = </span><span>"</span> + <span>this</span><span> );
</span><span>1462</span><span> Debug.Indent();
</span><span>1463</span><span>1464</span><span>if</span> (<span>this</span>.ptCurrentCell.X != -<span>1</span><span>/*</span><span>&& !this.IsCurrentCellInEditMode</span><span>*/</span> && ColumnEditable(<span>this</span><span>.ptCurrentCell.X))
</span><span>1465</span><span> {
</span><span>1466</span> DataGridViewCell dataGridViewCell = <span>this</span><span>.CurrentCellInternal;
</span><span>1467</span> Debug.Assert(dataGridViewCell != <span>null</span><span>);
</span><span>1468</span><span>1469</span><span>if</span> (!IsSharedCellReadOnly(dataGridViewCell, <span>this</span><span>.ptCurrentCell.Y))
</span><span>1470</span><span> {
</span><span>1471</span> canEnable = <span>base</span><span>.CanEnableIme;
</span><span>1472</span><span> }
</span><span>1473</span><span> }
</span><span>1474</span><span>1475</span> Debug.WriteLineIf( CompModSwitches.ImeMode.Level >= TraceLevel.Info, <span>"</span><span>Value = </span><span>"</span> +<span> canEnable );
</span><span>1476</span><span> Debug.Unindent();
</span><span>1477</span><span>1478</span><span>return</span><span> canEnable;
</span><span>1479</span><span> }
</span><span>1480</span><span> }
</span><span>1481</span><span>1482</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AdvancedCellBorderStyle"]/*‘ /></span><span>1483</span><span> [
</span><span>1484</span><span> SRCategory(SR.CatAppearance),
</span><span>1485</span><span> SRDescription(SR.DataGridView_CellBorderStyleDescr),
</span><span>1486</span> Browsable(<span>true</span><span>),
</span><span>1487</span><span> DefaultValue(DataGridViewCellBorderStyle.Single)
</span><span>1488</span><span> ]
</span><span>1489</span><span>public</span><span> DataGridViewCellBorderStyle CellBorderStyle
</span><span>1490</span><span> {
</span><span>1491</span><span>get</span><span>1492</span><span> {
</span><span>1493</span><span>switch</span> (<span>this</span><span>.advancedCellBorderStyle.All)
</span><span>1494</span><span> {
</span><span>1495</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.NotSet:
</span><span>1496</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Top == DataGridViewAdvancedCellBorderStyle.None &&
<span>1497</span><span>this</span>.advancedCellBorderStyle.Bottom ==<span> DataGridViewAdvancedCellBorderStyle.None)
</span><span>1498</span><span> {
</span><span>1499</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span>1500</span><span> {
</span><span>1501</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Right == DataGridViewAdvancedCellBorderStyle.None &&
<span>1502</span><span>this</span>.advancedCellBorderStyle.Left ==<span> DataGridViewAdvancedCellBorderStyle.Single)
</span><span>1503</span><span> {
</span><span>1504</span><span>return</span><span> DataGridViewCellBorderStyle.SingleVertical;
</span><span>1505</span><span> }
</span><span>1506</span><span> }
</span><span>1507</span><span>else</span><span>1508</span><span> {
</span><span>1509</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Left == DataGridViewAdvancedCellBorderStyle.None &&
<span>1510</span><span>this</span>.advancedCellBorderStyle.Right ==<span> DataGridViewAdvancedCellBorderStyle.Single)
</span><span>1511</span><span> {
</span><span>1512</span><span>return</span><span> DataGridViewCellBorderStyle.SingleVertical;
</span><span>1513</span><span> }
</span><span>1514</span><span> }
</span><span>1515</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Right == DataGridViewAdvancedCellBorderStyle.Outset &&
<span>1516</span><span>this</span>.advancedCellBorderStyle.Left ==<span> DataGridViewAdvancedCellBorderStyle.Outset)
</span><span>1517</span><span> {
</span><span>1518</span><span>return</span><span> DataGridViewCellBorderStyle.RaisedVertical;
</span><span>1519</span><span> }
</span><span>1520</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Right == DataGridViewAdvancedCellBorderStyle.Inset &&
<span>1521</span><span>this</span>.advancedCellBorderStyle.Left ==<span> DataGridViewAdvancedCellBorderStyle.Inset)
</span><span>1522</span><span> {
</span><span>1523</span><span>return</span><span> DataGridViewCellBorderStyle.SunkenVertical;
</span><span>1524</span><span> }
</span><span>1525</span><span> }
</span><span>1526</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Left == DataGridViewAdvancedCellBorderStyle.None &&
<span>1527</span><span>this</span>.advancedCellBorderStyle.Right ==<span> DataGridViewAdvancedCellBorderStyle.None)
</span><span>1528</span><span> {
</span><span>1529</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Top == DataGridViewAdvancedCellBorderStyle.None &&
<span>1530</span><span>this</span>.advancedCellBorderStyle.Bottom ==<span> DataGridViewAdvancedCellBorderStyle.Single)
</span><span>1531</span><span> {
</span><span>1532</span><span>return</span><span> DataGridViewCellBorderStyle.SingleHorizontal;
</span><span>1533</span><span> }
</span><span>1534</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Top == DataGridViewAdvancedCellBorderStyle.Outset &&
<span>1535</span><span>this</span>.advancedCellBorderStyle.Bottom ==<span> DataGridViewAdvancedCellBorderStyle.Outset)
</span><span>1536</span><span> {
</span><span>1537</span><span>return</span><span> DataGridViewCellBorderStyle.RaisedHorizontal;
</span><span>1538</span><span> }
</span><span>1539</span><span>if</span> (<span>this</span>.advancedCellBorderStyle.Top == DataGridViewAdvancedCellBorderStyle.Inset &&
<span>1540</span><span>this</span>.advancedCellBorderStyle.Bottom ==<span> DataGridViewAdvancedCellBorderStyle.Inset)
</span><span>1541</span><span> {
</span><span>1542</span><span>return</span><span> DataGridViewCellBorderStyle.SunkenHorizontal;
</span><span>1543</span><span> }
</span><span>1544</span><span> }
</span><span>1545</span><span>return</span><span> DataGridViewCellBorderStyle.Custom;
</span><span>1546</span><span>1547</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.None:
</span><span>1548</span><span>return</span><span> DataGridViewCellBorderStyle.None;
</span><span>1549</span><span>1550</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.Single:
</span><span>1551</span><span>return</span><span> DataGridViewCellBorderStyle.Single;
</span><span>1552</span><span>1553</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.Inset:
</span><span>1554</span><span>return</span><span> DataGridViewCellBorderStyle.Sunken;
</span><span>1555</span><span>1556</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.Outset:
</span><span>1557</span><span>return</span><span> DataGridViewCellBorderStyle.Raised;
</span><span>1558</span><span>1559</span><span>default</span><span>:
</span><span>1560</span> Debug.Fail(<span>"</span><span>Unexpected this.advancedCellBorderStyle.All value in CellBorderStyle.get</span><span>"</span><span>);
</span><span>1561</span><span>return</span><span> DataGridViewCellBorderStyle.Custom;
</span><span>1562</span><span> }
</span><span>1563</span><span> }
</span><span>1564</span><span>set</span><span>1565</span><span> {
</span><span>1566</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0xa</span><span>1567</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewCellBorderStyle.Custom, (<span>int</span><span>)DataGridViewCellBorderStyle.SunkenHorizontal))
</span><span>1568</span><span> {
</span><span>1569</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewCellBorderStyle));
</span><span>1570</span><span> }
</span><span>1571</span><span>1572</span><span>if</span> (value != <span>this</span><span>.CellBorderStyle)
</span><span>1573</span><span> {
</span><span>1574</span><span>if</span> (value ==<span> DataGridViewCellBorderStyle.Custom)
</span><span>1575</span><span> {
</span><span>1576</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_CustomCellBorderStyleInvalid, <span>"</span><span>CellBorderStyle</span><span>"</span><span>));
</span><span>1577</span><span> }
</span><span>1578</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inBorderStyleChange] = <span>true</span><span>;
</span><span>1579</span><span>try</span><span>1580</span><span> {
</span><span>1581</span><span>switch</span><span> (value)
</span><span>1582</span><span> {
</span><span>1583</span><span>case</span><span> DataGridViewCellBorderStyle.Single:
</span><span>1584</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span>1585</span><span>break</span><span>;
</span><span>1586</span><span>1587</span><span>case</span><span> DataGridViewCellBorderStyle.Raised:
</span><span>1588</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span>1589</span><span>break</span><span>;
</span><span>1590</span><span>1591</span><span>case</span><span> DataGridViewCellBorderStyle.Sunken:
</span><span>1592</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span>1593</span><span>break</span><span>;
</span><span>1594</span><span>1595</span><span>case</span><span> DataGridViewCellBorderStyle.None:
</span><span>1596</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1597</span><span>break</span><span>;
</span><span>1598</span><span>1599</span><span>case</span><span> DataGridViewCellBorderStyle.SingleVertical:
</span><span>1600</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1601</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span>1602</span><span> {
</span><span>1603</span><span>this</span>.advancedCellBorderStyle.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span>1604</span><span> }
</span><span>1605</span><span>else</span><span>1606</span><span> {
</span><span>1607</span><span>this</span>.advancedCellBorderStyle.RightInternal =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span>1608</span><span> }
</span><span>1609</span><span>break</span><span>;
</span><span>1610</span><span>1611</span><span>case</span><span> DataGridViewCellBorderStyle.RaisedVertical:
</span><span>1612</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1613</span><span>this</span>.advancedCellBorderStyle.RightInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span>1614</span><span>this</span>.advancedCellBorderStyle.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span>1615</span><span>break</span><span>;
</span><span>1616</span><span>1617</span><span>case</span><span> DataGridViewCellBorderStyle.SunkenVertical:
</span><span>1618</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1619</span><span>this</span>.advancedCellBorderStyle.RightInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span>1620</span><span>this</span>.advancedCellBorderStyle.LeftInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span>1621</span><span>break</span><span>;
</span><span>1622</span><span>1623</span><span>case</span><span> DataGridViewCellBorderStyle.SingleHorizontal:
</span><span>1624</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1625</span><span>this</span>.advancedCellBorderStyle.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span>1626</span><span>break</span><span>;
</span><span>1627</span><span>1628</span><span>case</span><span> DataGridViewCellBorderStyle.RaisedHorizontal:
</span><span>1629</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1630</span><span>this</span>.advancedCellBorderStyle.TopInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span>1631</span><span>this</span>.advancedCellBorderStyle.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Outset;
</span><span>1632</span><span>break</span><span>;
</span><span>1633</span><span>1634</span><span>case</span><span> DataGridViewCellBorderStyle.SunkenHorizontal:
</span><span>1635</span><span>this</span>.advancedCellBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1636</span><span>this</span>.advancedCellBorderStyle.TopInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span>1637</span><span>this</span>.advancedCellBorderStyle.BottomInternal =<span> DataGridViewAdvancedCellBorderStyle.Inset;
</span><span>1638</span><span>break</span><span>;
</span><span>1639</span><span> }
</span><span>1640</span><span> }
</span><span>1641</span><span>finally</span><span>1642</span><span> {
</span><span>1643</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inBorderStyleChange] = <span>false</span><span>;
</span><span>1644</span><span> }
</span><span>1645</span><span> OnCellBorderStyleChanged(EventArgs.Empty);
</span><span>1646</span><span> }
</span><span>1647</span><span> }
</span><span>1648</span><span> }
</span><span>1649</span><span>1650</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellBorderStyleChanged"]/*‘ /></span><span>1651</span><span> [
</span><span>1652</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1653</span><span> SRDescription(SR.DataGridView_CellBorderStyleChangedDescr)
</span><span>1654</span><span> ]
</span><span>1655</span><span>public</span><span>event</span><span> EventHandler CellBorderStyleChanged
</span><span>1656</span><span> {
</span><span>1657</span><span> add
</span><span>1658</span><span> {
</span><span>1659</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLBORDERSTYLECHANGED, value);
</span><span>1660</span><span> }
</span><span>1661</span><span> remove
</span><span>1662</span><span> {
</span><span>1663</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLBORDERSTYLECHANGED, value);
</span><span>1664</span><span> }
</span><span>1665</span><span> }
</span><span>1666</span><span>1667</span><span>internal</span><span>bool</span><span> CellMouseDownInContentBounds
</span><span>1668</span><span> {
</span><span>1669</span><span>get</span><span>1670</span><span> {
</span><span>1671</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_cellMouseDownInContentBounds];
</span><span>1672</span><span> }
</span><span>1673</span><span>set</span><span>1674</span><span> {
</span><span>1675</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_cellMouseDownInContentBounds] =<span> value;
</span><span>1676</span><span> }
</span><span>1677</span><span> }
</span><span>1678</span><span>1679</span><span>internal</span><span> DataGridViewCellPaintingEventArgs CellPaintingEventArgs
</span><span>1680</span><span> {
</span><span>1681</span><span>get</span><span>1682</span><span> {
</span><span>1683</span><span>if</span> (<span>this</span>.dgvcpe == <span>null</span><span>)
</span><span>1684</span><span> {
</span><span>1685</span><span>this</span>.dgvcpe = <span>new</span> DataGridViewCellPaintingEventArgs(<span>this</span><span>);
</span><span>1686</span><span> }
</span><span>1687</span><span>return</span><span>this</span><span>.dgvcpe;
</span><span>1688</span><span> }
</span><span>1689</span><span> }
</span><span>1690</span><span>1691</span><span>private</span><span> DataGridViewCellStyleChangedEventArgs CellStyleChangedEventArgs
</span><span>1692</span><span> {
</span><span>1693</span><span>get</span><span>1694</span><span> {
</span><span>1695</span><span>if</span> (<span>this</span>.dgvcsce == <span>null</span><span>)
</span><span>1696</span><span> {
</span><span>1697</span><span>this</span>.dgvcsce = <span>new</span><span> DataGridViewCellStyleChangedEventArgs();
</span><span>1698</span><span> }
</span><span>1699</span><span>return</span><span>this</span><span>.dgvcsce;
</span><span>1700</span><span> }
</span><span>1701</span><span> }
</span><span>1702</span><span>1703</span><span>internal</span><span> DataGridViewCellValueEventArgs CellValueEventArgs
</span><span>1704</span><span> {
</span><span>1705</span><span>get</span><span>1706</span><span> {
</span><span>1707</span><span>if</span> (<span>this</span>.dgvcve == <span>null</span><span>)
</span><span>1708</span><span> {
</span><span>1709</span><span>this</span>.dgvcve = <span>new</span><span> DataGridViewCellValueEventArgs();
</span><span>1710</span><span> }
</span><span>1711</span><span>return</span><span>this</span><span>.dgvcve;
</span><span>1712</span><span> }
</span><span>1713</span><span> }
</span><span>1714</span><span>1715</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ClipboardCopyMode"]/*‘ /></span><span>1716</span><span> [
</span><span>1717</span> Browsable(<span>true</span><span>),
</span><span>1718</span><span> DefaultValue(DataGridViewClipboardCopyMode.EnableWithAutoHeaderText),
</span><span>1719</span><span> SRCategory(SR.CatBehavior),
</span><span>1720</span><span> SRDescription(SR.DataGridView_ClipboardCopyModeDescr)
</span><span>1721</span><span> ]
</span><span>1722</span><span>public</span><span> DataGridViewClipboardCopyMode ClipboardCopyMode
</span><span>1723</span><span> {
</span><span>1724</span><span>get</span><span>1725</span><span> {
</span><span>1726</span><span>return</span><span>this</span><span>.clipboardCopyMode;
</span><span>1727</span><span> }
</span><span>1728</span><span>set</span><span>1729</span><span> {
</span><span>1730</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x3</span><span>1731</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewClipboardCopyMode.Disable, (<span>int</span><span>)DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText))
</span><span>1732</span><span> {
</span><span>1733</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewClipboardCopyMode));
</span><span>1734</span><span> }
</span><span>1735</span><span>this</span>.clipboardCopyMode =<span> value;
</span><span>1736</span><span> }
</span><span>1737</span><span> }
</span><span>1738</span><span>1739</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnCount"]/*‘ /></span><span>1740</span><span> [
</span><span>1741</span> Browsable(<span>false</span><span>),
</span><span>1742</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
</span><span>1743</span> DefaultValue(<span>0</span><span>),
</span><span>1744</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>1745</span><span> ]
</span><span>1746</span><span>public</span><span>int</span><span> ColumnCount
</span><span>1747</span><span> {
</span><span>1748</span><span>get</span><span>1749</span><span> {
</span><span>1750</span><span>return</span><span>this</span><span>.Columns.Count;
</span><span>1751</span><span> }
</span><span>1752</span><span>set</span><span>1753</span><span> {
</span><span>1754</span><span>if</span> (value < <span>0</span><span>)
</span><span>1755</span><span> {
</span><span>1756</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>ColumnCount</span><span>"</span>, SR.GetString(SR.InvalidLowBoundArgumentEx, <span>"</span><span>ColumnCount</span><span>"</span>, value.ToString(CultureInfo.CurrentCulture), (<span>0</span><span>).ToString(CultureInfo.CurrentCulture)));
</span><span>1757</span><span> }
</span><span>1758</span><span>if</span> (<span>this</span>.DataSource != <span>null</span><span>)
</span><span>1759</span><span> {
</span><span>1760</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CannotSetColumnCountOnDataBoundDataGridView));
</span><span>1761</span><span> }
</span><span>1762</span><span>if</span> (value != <span>this</span><span>.Columns.Count)
</span><span>1763</span><span> {
</span><span>1764</span><span>if</span> (value == <span>0</span><span>)
</span><span>1765</span><span> {
</span><span>1766</span><span>//</span><span> Total removal of the columns. This also clears the rows.</span><span>1767</span><span>this</span><span>.Columns.Clear();
</span><span>1768</span><span> }
</span><span>1769</span><span>else</span><span>if</span> (value < <span>this</span><span>.Columns.Count)
</span><span>1770</span><span> {
</span><span>1771</span><span>//</span><span> Some columns need to be removed, from the tail of the columns collection</span><span>1772</span><span>while</span> (value < <span>this</span><span>.Columns.Count)
</span><span>1773</span><span> {
</span><span>1774</span><span>int</span> currentColumnCount = <span>this</span><span>.Columns.Count;
</span><span>1775</span><span>this</span>.Columns.RemoveAt(currentColumnCount - <span>1</span><span>);
</span><span>1776</span><span>if</span> (<span>this</span>.Columns.Count >=<span> currentColumnCount)
</span><span>1777</span><span> {
</span><span>1778</span><span>//</span><span> Column removal failed. We stop the loop.</span><span>1779</span><span>break</span><span>;
</span><span>1780</span><span> }
</span><span>1781</span><span> }
</span><span>1782</span><span> }
</span><span>1783</span><span>else</span><span>1784</span><span> {
</span><span>1785</span><span>//</span><span> Some DataGridViewTextBoxColumn columns need to be appened.</span><span>1786</span><span>while</span> (value > <span>this</span><span>.Columns.Count)
</span><span>1787</span><span> {
</span><span>1788</span><span>int</span> currentColumnCount = <span>this</span><span>.Columns.Count;
</span><span>1789</span><span>this</span>.Columns.Add(<span>null</span><span>/*</span><span>columnName</span><span>*/</span>, <span>null</span><span>/*</span><span>headerText</span><span>*/</span><span>);
</span><span>1790</span><span>if</span> (<span>this</span>.Columns.Count <=<span> currentColumnCount)
</span><span>1791</span><span> {
</span><span>1792</span><span>//</span><span> Column addition failed. We stop the loop.</span><span>1793</span><span>break</span><span>;
</span><span>1794</span><span> }
</span><span>1795</span><span> }
</span><span>1796</span><span> }
</span><span>1797</span><span> }
</span><span>1798</span><span> }
</span><span>1799</span><span> }
</span><span>1800</span><span>1801</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersBorderStyle"]/*‘ /></span><span>1802</span><span> [
</span><span>1803</span><span> SRCategory(SR.CatAppearance),
</span><span>1804</span><span> SRDescription(SR.DataGridView_ColumnHeadersBorderStyleDescr),
</span><span>1805</span> Browsable(<span>true</span><span>),
</span><span>1806</span><span> DefaultValue(DataGridViewHeaderBorderStyle.Raised)
</span><span>1807</span><span> ]
</span><span>1808</span><span>public</span><span> DataGridViewHeaderBorderStyle ColumnHeadersBorderStyle
</span><span>1809</span><span> {
</span><span>1810</span><span>get</span><span>1811</span><span> {
</span><span>1812</span><span>switch</span> (<span>this</span><span>.advancedColumnHeadersBorderStyle.All)
</span><span>1813</span><span> {
</span><span>1814</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.NotSet:
</span><span>1815</span><span>return</span><span> DataGridViewHeaderBorderStyle.Custom;
</span><span>1816</span><span>1817</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.None:
</span><span>1818</span><span>return</span><span> DataGridViewHeaderBorderStyle.None;
</span><span>1819</span><span>1820</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.Single:
</span><span>1821</span><span>return</span><span> DataGridViewHeaderBorderStyle.Single;
</span><span>1822</span><span>1823</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.InsetDouble:
</span><span>1824</span><span>return</span><span> DataGridViewHeaderBorderStyle.Sunken;
</span><span>1825</span><span>1826</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.OutsetPartial:
</span><span>1827</span><span>return</span><span> DataGridViewHeaderBorderStyle.Raised;
</span><span>1828</span><span>1829</span><span>default</span><span>:
</span><span>1830</span><span>return</span><span> DataGridViewHeaderBorderStyle.Custom;
</span><span>1831</span><span> }
</span><span>1832</span><span> }
</span><span>1833</span><span>set</span><span>1834</span><span> {
</span><span>1835</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x4</span><span>1836</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewHeaderBorderStyle.Custom, (<span>int</span><span>)DataGridViewHeaderBorderStyle.None))
</span><span>1837</span><span> {
</span><span>1838</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewHeaderBorderStyle));
</span><span>1839</span><span> }
</span><span>1840</span><span>if</span> (value != <span>this</span><span>.ColumnHeadersBorderStyle)
</span><span>1841</span><span> {
</span><span>1842</span><span>if</span> (value ==<span> DataGridViewHeaderBorderStyle.Custom)
</span><span>1843</span><span> {
</span><span>1844</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_CustomCellBorderStyleInvalid, <span>"</span><span>ColumnHeadersBorderStyle</span><span>"</span><span>));
</span><span>1845</span><span> }
</span><span>1846</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inBorderStyleChange] = <span>true</span><span>;
</span><span>1847</span><span>try</span><span>1848</span><span> {
</span><span>1849</span><span>switch</span><span> (value)
</span><span>1850</span><span> {
</span><span>1851</span><span>case</span><span> DataGridViewHeaderBorderStyle.Single:
</span><span>1852</span><span>this</span>.advancedColumnHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span>1853</span><span>break</span><span>;
</span><span>1854</span><span>1855</span><span>case</span><span> DataGridViewHeaderBorderStyle.Raised:
</span><span>1856</span><span>this</span>.advancedColumnHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.OutsetPartial;
</span><span>1857</span><span>break</span><span>;
</span><span>1858</span><span>1859</span><span>case</span><span> DataGridViewHeaderBorderStyle.Sunken:
</span><span>1860</span><span>this</span>.advancedColumnHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.InsetDouble;
</span><span>1861</span><span>break</span><span>;
</span><span>1862</span><span>1863</span><span>case</span><span> DataGridViewHeaderBorderStyle.None:
</span><span>1864</span><span>this</span>.advancedColumnHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>1865</span><span>break</span><span>;
</span><span>1866</span><span> }
</span><span>1867</span><span> }
</span><span>1868</span><span>finally</span><span>1869</span><span> {
</span><span>1870</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inBorderStyleChange] = <span>false</span><span>;
</span><span>1871</span><span> }
</span><span>1872</span><span> OnColumnHeadersBorderStyleChanged(EventArgs.Empty);
</span><span>1873</span><span> }
</span><span>1874</span><span> }
</span><span>1875</span><span> }
</span><span>1876</span><span>1877</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersBorderStyleChanged"]/*‘ /></span><span>1878</span><span> [
</span><span>1879</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1880</span><span> SRDescription(SR.DataGridView_ColumnHeadersBorderStyleChangedDescr)
</span><span>1881</span><span> ]
</span><span>1882</span><span>public</span><span>event</span><span> EventHandler ColumnHeadersBorderStyleChanged
</span><span>1883</span><span> {
</span><span>1884</span><span> add
</span><span>1885</span><span> {
</span><span>1886</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSBORDERSTYLECHANGED, value);
</span><span>1887</span><span> }
</span><span>1888</span><span> remove
</span><span>1889</span><span> {
</span><span>1890</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSBORDERSTYLECHANGED, value);
</span><span>1891</span><span> }
</span><span>1892</span><span> }
</span><span>1893</span><span>1894</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersDefaultCellStyle"]/*‘ /></span><span>1895</span><span> [
</span><span>1896</span><span> SRCategory(SR.CatAppearance),
</span><span>1897</span><span> SRDescription(SR.DataGridView_ColumnHeadersDefaultCellStyleDescr),
</span><span>1898</span> AmbientValue(<span>null</span><span>)
</span><span>1899</span><span> ]
</span><span>1900</span><span>public</span><span> DataGridViewCellStyle ColumnHeadersDefaultCellStyle
</span><span>1901</span><span> {
</span><span>1902</span><span>get</span><span>1903</span><span> {
</span><span>1904</span><span>if</span> (<span>this</span>.columnHeadersDefaultCellStyle == <span>null</span><span>)
</span><span>1905</span><span> {
</span><span>1906</span><span>this</span>.columnHeadersDefaultCellStyle = <span>this</span><span>.DefaultColumnHeadersDefaultCellStyle;
</span><span>1907</span><span> }
</span><span>1908</span><span>return</span><span>this</span><span>.columnHeadersDefaultCellStyle;
</span><span>1909</span><span> }
</span><span>1910</span><span>set</span><span>1911</span><span> {
</span><span>1912</span> DataGridViewCellStyle cs = <span>this</span><span>.ColumnHeadersDefaultCellStyle;
</span><span>1913</span><span> cs.RemoveScope(DataGridViewCellStyleScopes.ColumnHeaders);
</span><span>1914</span><span>this</span>.columnHeadersDefaultCellStyle =<span> value;
</span><span>1915</span><span>if</span> (value != <span>null</span><span>)
</span><span>1916</span><span> {
</span><span>1917</span><span>this</span>.columnHeadersDefaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.ColumnHeaders);
</span><span>1918</span><span> }
</span><span>1919</span> DataGridViewCellStyleDifferences dgvcsc = cs.GetDifferencesFrom(<span>this</span><span>.ColumnHeadersDefaultCellStyle);
</span><span>1920</span><span>if</span> (dgvcsc !=<span> DataGridViewCellStyleDifferences.None)
</span><span>1921</span><span> {
</span><span>1922</span><span>this</span>.CellStyleChangedEventArgs.ChangeAffectsPreferredSize = (dgvcsc ==<span> DataGridViewCellStyleDifferences.AffectPreferredSize);
</span><span>1923</span> OnColumnHeadersDefaultCellStyleChanged(<span>this</span><span>.CellStyleChangedEventArgs);
</span><span>1924</span><span> }
</span><span>1925</span><span> }
</span><span>1926</span><span> }
</span><span>1927</span><span>1928</span><span>private</span><span> DataGridViewCellStyle DefaultColumnHeadersDefaultCellStyle {
</span><span>1929</span><span>get</span><span>1930</span><span> {
</span><span>1931</span> DataGridViewCellStyle defaultStyle = <span>new</span><span> DataGridViewCellStyle();
</span><span>1932</span> defaultStyle.BackColor =<span> DefaultHeadersBackBrush.Color;
</span><span>1933</span> defaultStyle.ForeColor =<span> DefaultForeBrush.Color;
</span><span>1934</span> defaultStyle.SelectionBackColor =<span> DefaultSelectionBackBrush.Color;
</span><span>1935</span> defaultStyle.SelectionForeColor =<span> DefaultSelectionForeBrush.Color;
</span><span>1936</span> defaultStyle.Font = <span>base</span><span>.Font;
</span><span>1937</span> defaultStyle.AlignmentInternal =<span> DataGridViewContentAlignment.MiddleLeft;
</span><span>1938</span> defaultStyle.WrapModeInternal =<span> DataGridViewTriState.True;
</span><span>1939</span> defaultStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.ColumnHeaders);
</span><span>1940</span><span>1941</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_ambientColumnHeadersFont] = <span>true</span><span>;
</span><span>1942</span><span>1943</span><span>return</span><span> defaultStyle;
</span><span>1944</span><span> }
</span><span>1945</span><span> }
</span><span>1946</span><span>1947</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersDefaultCellStyleChanged"]/*‘ /></span><span>1948</span><span> [
</span><span>1949</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>1950</span><span> SRDescription(SR.DataGridViewColumnHeadersDefaultCellStyleChangedDescr)
</span><span>1951</span><span> ]
</span><span>1952</span><span>public</span><span>event</span><span> EventHandler ColumnHeadersDefaultCellStyleChanged
</span><span>1953</span><span> {
</span><span>1954</span><span> add
</span><span>1955</span><span> {
</span><span>1956</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSDEFAULTCELLSTYLECHANGED, value);
</span><span>1957</span><span> }
</span><span>1958</span><span> remove
</span><span>1959</span><span> {
</span><span>1960</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSDEFAULTCELLSTYLECHANGED, value);
</span><span>1961</span><span> }
</span><span>1962</span><span> }
</span><span>1963</span><span>1964</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersHeight"]/*‘ /></span><span>1965</span><span> [
</span><span>1966</span><span> SRCategory(SR.CatAppearance),
</span><span>1967</span> Localizable(<span>true</span><span>),
</span><span>1968</span><span> SRDescription(SR.DataGridView_ColumnHeadersHeightDescr)
</span><span>1969</span><span> ]
</span><span>1970</span><span>public</span><span>int</span><span> ColumnHeadersHeight
</span><span>1971</span><span> {
</span><span>1972</span><span>get</span><span>1973</span><span> {
</span><span>1974</span><span>return</span><span>this</span><span>.columnHeadersHeight;
</span><span>1975</span><span> }
</span><span>1976</span><span>set</span><span>1977</span><span> {
</span><span>1978</span><span>if</span> (value <<span> minimumColumnHeadersHeight)
</span><span>1979</span><span> {
</span><span>1980</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>ColumnHeadersHeight</span><span>"</span>, SR.GetString(SR.InvalidLowBoundArgumentEx, <span>"</span><span>ColumnHeadersHeight</span><span>"</span><span>, (value).ToString(CultureInfo.CurrentCulture), (minimumColumnHeadersHeight).ToString(CultureInfo.CurrentCulture)));
</span><span>1981</span><span> }
</span><span>1982</span><span>if</span> (value ><span> maxHeadersThickness)
</span><span>1983</span><span> {
</span><span>1984</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>ColumnHeadersHeight</span><span>"</span>, SR.GetString(SR.InvalidHighBoundArgumentEx, <span>"</span><span>ColumnHeadersHeight</span><span>"</span><span>, (value).ToString(CultureInfo.CurrentCulture), (maxHeadersThickness).ToString(CultureInfo.CurrentCulture)));
</span><span>1985</span><span> }
</span><span>1986</span><span>if</span> (<span>this</span>.ColumnHeadersHeightSizeMode ==<span> DataGridViewColumnHeadersHeightSizeMode.AutoSize)
</span><span>1987</span><span> {
</span><span>1988</span><span>this</span>.cachedColumnHeadersHeight =<span> value;
</span><span>1989</span><span> }
</span><span>1990</span><span>else</span><span>if</span> (<span>this</span>.columnHeadersHeight !=<span> value)
</span><span>1991</span><span> {
</span><span>1992</span> SetColumnHeadersHeightInternal(value, <span>true</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span><span>);
</span><span>1993</span><span> }
</span><span>1994</span><span> }
</span><span>1995</span><span> }
</span><span>1996</span><span>1997</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersHeightChanged"]/*‘ /></span><span>1998</span><span> [
</span><span>1999</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>2000</span><span> SRDescription(SR.DataGridViewColumnHeadersHeightChangedDescr)
</span><span>2001</span><span> ]
</span><span>2002</span><span>public</span><span>event</span><span> EventHandler ColumnHeadersHeightChanged
</span><span>2003</span><span> {
</span><span>2004</span><span> add
</span><span>2005</span><span> {
</span><span>2006</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSHEIGHTCHANGED, value);
</span><span>2007</span><span> }
</span><span>2008</span><span> remove
</span><span>2009</span><span> {
</span><span>2010</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSHEIGHTCHANGED, value);
</span><span>2011</span><span> }
</span><span>2012</span><span> }
</span><span>2013</span><span>2014</span><span>private</span><span>bool</span><span> ShouldSerializeColumnHeadersHeight()
</span><span>2015</span><span> {
</span><span>2016</span><span>return</span><span>this</span>.ColumnHeadersHeightSizeMode != DataGridViewColumnHeadersHeightSizeMode.AutoSize && defaultColumnHeadersHeight != <span>this</span><span>.ColumnHeadersHeight;
</span><span>2017</span><span> }
</span><span>2018</span><span>2019</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersHeightSizeMode"]/*‘ /></span><span>2020</span><span>///</span><span><devdoc></span><span>2021</span><span>///</span><span><para></span><span>2022</span><span>///</span><span> Gets or sets a value that determines the behavior for adjusting the column headers height.
</span><span>2023</span><span>///</span><span></para></span><span>2024</span><span>///</span><span></devdoc></span><span>2025</span><span> [
</span><span>2026</span><span> DefaultValue(DataGridViewColumnHeadersHeightSizeMode.EnableResizing),
</span><span>2027</span><span> RefreshProperties(RefreshProperties.All),
</span><span>2028</span><span> SRCategory(SR.CatBehavior),
</span><span>2029</span><span> SRDescription(SR.DataGridView_ColumnHeadersHeightSizeModeDescr)
</span><span>2030</span><span> ]
</span><span>2031</span><span>public</span><span> DataGridViewColumnHeadersHeightSizeMode ColumnHeadersHeightSizeMode
</span><span>2032</span><span> {
</span><span>2033</span><span>get</span><span>2034</span><span> {
</span><span>2035</span><span>return</span><span>this</span><span>.columnHeadersHeightSizeMode;
</span><span>2036</span><span> }
</span><span>2037</span><span>set</span><span>2038</span><span> {
</span><span>2039</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x2</span><span>2040</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewColumnHeadersHeightSizeMode.EnableResizing, (<span>int</span><span>)DataGridViewColumnHeadersHeightSizeMode.AutoSize))
</span><span>2041</span><span> {
</span><span>2042</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewColumnHeadersHeightSizeMode));
</span><span>2043</span><span> }
</span><span>2044</span><span>if</span> (<span>this</span>.columnHeadersHeightSizeMode !=<span> value)
</span><span>2045</span><span> {
</span><span>2046</span><span>/*</span><span>if (value == DataGridViewColumnHeadersHeightSizeMode.AutoSize && !this.ColumnHeadersVisible)
</span><span>2047</span><span> {
</span><span>2048</span><span> We intentionally don‘t throw an error because of designer code spit order.
</span><span>2049</span><span> }</span><span>*/</span><span>2050</span> DataGridViewAutoSizeModeEventArgs dgvasme = <span>new</span> DataGridViewAutoSizeModeEventArgs(<span>this</span>.columnHeadersHeightSizeMode ==<span> DataGridViewColumnHeadersHeightSizeMode.AutoSize);
</span><span>2051</span><span>this</span>.columnHeadersHeightSizeMode =<span> value;
</span><span>2052</span><span> OnColumnHeadersHeightSizeModeChanged(dgvasme);
</span><span>2053</span><span> }
</span><span>2054</span><span> }
</span><span>2055</span><span> }
</span><span>2056</span><span>2057</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersHeightSizeModeChanged"]/*‘ /></span><span>2058</span><span> [
</span><span>2059</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>2060</span><span> SRDescription(SR.DataGridView_ColumnHeadersHeightSizeModeChangedDescr)
</span><span>2061</span><span> ]
</span><span>2062</span><span>public</span><span>event</span><span> DataGridViewAutoSizeModeEventHandler ColumnHeadersHeightSizeModeChanged
</span><span>2063</span><span> {
</span><span>2064</span><span> add
</span><span>2065</span><span> {
</span><span>2066</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSHEIGHTSIZEMODECHANGED, value);
</span><span>2067</span><span> }
</span><span>2068</span><span> remove
</span><span>2069</span><span> {
</span><span>2070</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERSHEIGHTSIZEMODECHANGED, value);
</span><span>2071</span><span> }
</span><span>2072</span><span> }
</span><span>2073</span><span>2074</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeadersVisible"]/*‘ /></span><span>2075</span><span>///</span><span><devdoc></span><span>2076</span><span>///</span><span><para></span><span>2077</span><span>///</span><span> Gets
</span><span>2078</span><span>///</span><span> or sets a value indicating if the dataGridView‘s column headers are visible.
</span><span>2079</span><span>///</span><span></para></span><span>2080</span><span>///</span><span></devdoc></span><span>2081</span><span> [
</span><span>2082</span><span> SRCategory(SR.CatAppearance),
</span><span>2083</span> DefaultValue(<span>true</span><span>),
</span><span>2084</span><span> SRDescription(SR.DataGridViewColumnHeadersVisibleDescr)
</span><span>2085</span><span> ]
</span><span>2086</span><span>public</span><span>bool</span><span> ColumnHeadersVisible
</span><span>2087</span><span> {
</span><span>2088</span><span>get</span><span>2089</span><span> {
</span><span>2090</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_columnHeadersVisible];
</span><span>2091</span><span> }
</span><span>2092</span><span>set</span><span>2093</span><span> {
</span><span>2094</span><span>if</span> (<span>this</span>.ColumnHeadersVisible !=<span> value)
</span><span>2095</span><span> {
</span><span>2096</span><span>if</span> (!<span>value)
</span><span>2097</span><span> {
</span><span>2098</span><span>//</span><span> Make sure that there is no visible column that only counts on the column headers to autosize</span><span>2099</span> DataGridViewColumn dataGridViewColumn = <span>this</span><span>.Columns.GetFirstColumn(DataGridViewElementStates.Visible);
</span><span>2100</span><span>while</span> (dataGridViewColumn != <span>null</span><span>)
</span><span>2101</span><span> {
</span><span>2102</span><span>if</span> (dataGridViewColumn.InheritedAutoSizeMode ==<span> DataGridViewAutoSizeColumnMode.ColumnHeader)
</span><span>2103</span><span> {
</span><span>2104</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_ColumnHeadersCannotBeInvisible));
</span><span>2105</span><span> }
</span><span>2106</span> dataGridViewColumn = <span>this</span><span>.Columns.GetNextColumn(dataGridViewColumn,
</span><span>2107</span><span> DataGridViewElementStates.Visible,
</span><span>2108</span><span> DataGridViewElementStates.None);
</span><span>2109</span><span> }
</span><span>2110</span><span> }
</span><span>2111</span><span>using</span> (LayoutTransaction.CreateTransactionIf(<span>this</span>.AutoSize, <span>this</span>.ParentInternal, <span>this</span><span>, PropertyNames.ColumnHeadersVisible))
</span><span>2112</span><span> {
</span><span>2113</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_columnHeadersVisible] =<span> value;
</span><span>2114</span><span>this</span>.layout.ColumnHeadersVisible =<span> value;
</span><span>2115</span><span>this</span><span>.displayedBandsInfo.EnsureDirtyState();
</span><span>2116</span><span>if</span> (!<span>this</span><span>.AutoSize)
</span><span>2117</span><span> {
</span><span>2118</span> PerformLayoutPrivate(<span>false</span><span>/*</span><span>useRowShortcut</span><span>*/</span>, <span>false</span><span>/*</span><span>computeVisibleRows</span><span>*/</span>, <span>true</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span>, <span>true</span><span>/*</span><span>repositionEditingControl</span><span>*/</span><span>);
</span><span>2119</span><span> }
</span><span>2120</span><span> InvalidateInside();
</span><span>2121</span><span> OnColumnHeadersGlobalAutoSize();
</span><span>2122</span><span> }
</span><span>2123</span><span> }
</span><span>2124</span><span> }
</span><span>2125</span><span> }
</span><span>2126</span><span>2127</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Columns"]/*‘ /></span><span>2128</span><span> [
</span><span>2129</span> Editor(<span>"</span><span>System.Windows.Forms.Design.DataGridViewColumnCollectionEditor, </span><span>"</span> + AssemblyRef.SystemDesign, <span>typeof</span><span>(System.Drawing.Design.UITypeEditor)),
</span><span>2130</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
</span><span>2131</span> MergableProperty(<span>false</span><span>)
</span><span>2132</span><span> ]
</span><span>2133</span><span>public</span><span> DataGridViewColumnCollection Columns
</span><span>2134</span><span> {
</span><span>2135</span><span>get</span><span>2136</span><span> {
</span><span>2137</span><span>if</span> (<span>this</span>.dataGridViewColumns == <span>null</span><span>)
</span><span>2138</span><span> {
</span><span>2139</span><span>this</span>.dataGridViewColumns =<span> CreateColumnsInstance();
</span><span>2140</span><span> }
</span><span>2141</span><span>return</span><span>this</span><span>.dataGridViewColumns;
</span><span>2142</span><span> }
</span><span>2143</span><span> }
</span><span>2144</span><span>2145</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CurrentCell"]/*‘ /></span><span>2146</span><span> [
</span><span>2147</span> Browsable(<span>false</span><span>),
</span><span>2148</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>2149</span><span> ]
</span><span>2150</span><span>public</span><span> DataGridViewCell CurrentCell
</span><span>2151</span><span> {
</span><span>2152</span><span>get</span><span>2153</span><span> {
</span><span>2154</span><span>if</span> (<span>this</span>.ptCurrentCell.X == -<span>1</span> && <span>this</span>.ptCurrentCell.Y == -<span>1</span><span>)
</span><span>2155</span><span> {
</span><span>2156</span><span>return</span><span>null</span><span>;
</span><span>2157</span><span> }
</span><span>2158</span> Debug.Assert(<span>this</span>.ptCurrentCell.X >= <span>0</span> && ptCurrentCell.Y >= <span>0</span><span>);
</span><span>2159</span> Debug.Assert(<span>this</span>.ptCurrentCell.X < <span>this</span><span>.Columns.Count);
</span><span>2160</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y < <span>this</span><span>.Rows.Count);
</span><span>2161</span> DataGridViewRow dataGridViewRow = (DataGridViewRow) <span>this</span>.Rows[<span>this</span>.ptCurrentCell.Y]; <span>//</span><span> unsharing row</span><span>2162</span><span>return</span> dataGridViewRow.Cells[<span>this</span><span>.ptCurrentCell.X];
</span><span>2163</span><span> }
</span><span>2164</span><span>set</span><span>2165</span><span> {
</span><span>2166</span><span>if</span> ((value != <span>null</span> && (value.RowIndex != <span>this</span>.ptCurrentCell.Y || value.ColumnIndex != <span>this</span>.ptCurrentCell.X)) ||
<span>2167</span> (value == <span>null</span> && <span>this</span>.ptCurrentCell.X != -<span>1</span><span>))
</span><span>2168</span><span> {
</span><span>2169</span><span>if</span> (value == <span>null</span><span>)
</span><span>2170</span><span> {
</span><span>2171</span><span> ClearSelection();
</span><span>2172</span><span>if</span> (!SetCurrentCellAddressCore(-<span>1</span>, -<span>1</span>, <span>true</span><span>/*</span><span>setAnchorCellAddress</span><span>*/</span>, <span>true</span><span>/*</span><span>validateCurrentCell</span><span>*/</span>, <span>false</span><span>/*</span><span>throughMouseClick</span><span>*/</span><span>))
</span><span>2173</span><span> {
</span><span>2174</span><span>//</span><span> Edited value couldn‘t be committed or aborted</span><span>2175</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CellChangeCannotBeCommittedOrAborted));
</span><span>2176</span><span> }
</span><span>2177</span><span> }
</span><span>2178</span><span>else</span><span>2179</span><span> {
</span><span>2180</span><span>if</span> (value.DataGridView != <span>this</span><span>)
</span><span>2181</span><span> {
</span><span>2182</span><span>throw</span><span>new</span><span> ArgumentException(SR.GetString(SR.DataGridView_CellDoesNotBelongToDataGridView));
</span><span>2183</span><span> }
</span><span>2184</span><span>if</span> (!<span>this</span>.Columns[value.ColumnIndex].Visible ||
<span>2185</span> (<span>this</span>.Rows.GetRowState(value.RowIndex) & DataGridViewElementStates.Visible) == <span>0</span><span>)
</span><span>2186</span><span> {
</span><span>2187</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CurrentCellCannotBeInvisible));
</span><span>2188</span><span> }
</span><span>2189</span><span>if</span> (!ScrollIntoView(value.ColumnIndex, value.RowIndex, <span>true</span><span>))
</span><span>2190</span><span> {
</span><span>2191</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CellChangeCannotBeCommittedOrAborted));
</span><span>2192</span><span> }
</span><span>2193</span><span>if</span><span> (IsInnerCellOutOfBounds(value.ColumnIndex, value.RowIndex))
</span><span>2194</span><span> {
</span><span>2195</span><span>return</span><span>;
</span><span>2196</span><span> }
</span><span>2197</span> ClearSelection(value.ColumnIndex, value.RowIndex, <span>true</span><span>/*</span><span>selectExceptionElement</span><span>*/</span><span>);
</span><span>2198</span><span>if</span> (!SetCurrentCellAddressCore(value.ColumnIndex, value.RowIndex, <span>true</span>, <span>false</span>, <span>false</span><span>))
</span><span>2199</span><span> {
</span><span>2200</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CellChangeCannotBeCommittedOrAborted));
</span><span>2201</span><span> }
</span><span>2202</span><span> }
</span><span>2203</span><span> }
</span><span>2204</span><span> }
</span><span>2205</span><span> }
</span><span>2206</span><span>2207</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CurrentCellAddress"]/*‘ /></span><span>2208</span><span> [
</span><span>2209</span> Browsable(<span>false</span><span>)
</span><span>2210</span><span> ]
</span><span>2211</span><span>public</span><span> Point CurrentCellAddress
</span><span>2212</span><span> {
</span><span>2213</span><span>get</span><span>2214</span><span> {
</span><span>2215</span><span>return</span><span>this</span><span>.ptCurrentCell;
</span><span>2216</span><span> }
</span><span>2217</span><span> }
</span><span>2218</span><span>2219</span><span>private</span><span> DataGridViewCell CurrentCellInternal
</span><span>2220</span><span> {
</span><span>2221</span><span>get</span><span>2222</span><span> {
</span><span>2223</span> Debug.Assert(<span>this</span>.ptCurrentCell.X >= <span>0</span> && <span>this</span>.ptCurrentCell.X < <span>this</span><span>.Columns.Count);
</span><span>2224</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y >= <span>0</span> && <span>this</span>.ptCurrentCell.Y < <span>this</span><span>.Rows.Count);
</span><span>2225</span> DataGridViewRow dataGridViewRow = <span>this</span>.Rows.SharedRow(<span>this</span><span>.ptCurrentCell.Y);
</span><span>2226</span> Debug.Assert(dataGridViewRow != <span>null</span><span>);
</span><span>2227</span> DataGridViewCell dataGridViewCell = dataGridViewRow.Cells[<span>this</span><span>.ptCurrentCell.X];
</span><span>2228</span> Debug.Assert(<span>this</span>.IsSharedCellVisible(dataGridViewCell, <span>this</span><span>.ptCurrentCell.Y));
</span><span>2229</span><span>return</span><span> dataGridViewCell;
</span><span>2230</span><span> }
</span><span>2231</span><span> }
</span><span>2232</span><span>2233</span><span>private</span><span>bool</span><span> CurrentCellIsFirstVisibleCell
</span><span>2234</span><span> {
</span><span>2235</span><span>get</span><span>2236</span><span> {
</span><span>2237</span><span>if</span> (<span>this</span>.ptCurrentCell.X == -<span>1</span><span>)
</span><span>2238</span><span> {
</span><span>2239</span><span>return</span><span>false</span><span>;
</span><span>2240</span><span> }
</span><span>2241</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y != -<span>1</span><span>);
</span><span>2242</span><span>2243</span><span>bool</span> previousVisibleColumnExists = (<span>null</span> != <span>this</span>.Columns.GetPreviousColumn(<span>this</span>.Columns[<span>this</span><span>.ptCurrentCell.X], DataGridViewElementStates.Visible, DataGridViewElementStates.None));
</span><span>2244</span><span>bool</span> previousVisibleRowExists = (-<span>1</span> != <span>this</span>.Rows.GetPreviousRow(<span>this</span><span>.ptCurrentCell.Y, DataGridViewElementStates.Visible));
</span><span>2245</span><span>2246</span><span>return</span> !previousVisibleColumnExists && !<span>previousVisibleRowExists;
</span><span>2247</span><span> }
</span><span>2248</span><span> }
</span><span>2249</span><span>2250</span><span>private</span><span>bool</span><span> CurrentCellIsLastVisibleCell
</span><span>2251</span><span> {
</span><span>2252</span><span>get</span><span>2253</span><span> {
</span><span>2254</span><span>if</span> (<span>this</span>.ptCurrentCell.X == -<span>1</span><span>)
</span><span>2255</span><span> {
</span><span>2256</span><span>return</span><span>false</span><span>;
</span><span>2257</span><span> }
</span><span>2258</span><span>2259</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y != -<span>1</span><span>);
</span><span>2260</span><span>2261</span><span>bool</span> nextVisibleColumnExists = (<span>null</span> != <span>this</span>.Columns.GetNextColumn(<span>this</span>.Columns[<span>this</span><span>.ptCurrentCell.X], DataGridViewElementStates.Visible, DataGridViewElementStates.None));
</span><span>2262</span><span>bool</span> nextVisibleRowExists = (-<span>1</span> != <span>this</span>.Rows.GetNextRow(<span>this</span><span>.ptCurrentCell.Y, DataGridViewElementStates.Visible));
</span><span>2263</span><span>2264</span><span>return</span> !nextVisibleColumnExists && !<span>nextVisibleRowExists;
</span><span>2265</span><span> }
</span><span>2266</span><span> }
</span><span>2267</span><span>2268</span><span>private</span><span>bool</span><span> CurrentCellIsEditedAndOnlySelectedCell
</span><span>2269</span><span> {
</span><span>2270</span><span>get</span><span>2271</span><span> {
</span><span>2272</span><span>if</span> (<span>this</span>.ptCurrentCell.X == -<span>1</span><span>)
</span><span>2273</span><span> {
</span><span>2274</span><span>return</span><span>false</span><span>;
</span><span>2275</span><span> }
</span><span>2276</span><span>2277</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y != -<span>1</span><span>);
</span><span>2278</span><span>2279</span><span>return</span><span>this</span>.editingControl != <span>null</span> &&
<span>2280</span> GetCellCount(DataGridViewElementStates.Selected) == <span>1</span> &&
<span>2281</span><span>this</span><span>.CurrentCellInternal.Selected;
</span><span>2282</span><span> }
</span><span>2283</span><span> }
</span><span>2284</span><span>2285</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CurrentRow"]/*‘ /></span><span>2286</span><span> [
</span><span>2287</span> Browsable(<span>false</span><span>)
</span><span>2288</span><span> ]
</span><span>2289</span><span>public</span><span> DataGridViewRow CurrentRow
</span><span>2290</span><span> {
</span><span>2291</span><span>get</span><span>2292</span><span> {
</span><span>2293</span><span>if</span> (<span>this</span>.ptCurrentCell.X == -<span>1</span><span>)
</span><span>2294</span><span> {
</span><span>2295</span><span>return</span><span>null</span><span>;
</span><span>2296</span><span> }
</span><span>2297</span><span>2298</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y >= <span>0</span><span>);
</span><span>2299</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y < <span>this</span><span>.Rows.Count);
</span><span>2300</span><span>2301</span><span>return</span><span>this</span>.Rows[<span>this</span><span>.ptCurrentCell.Y];
</span><span>2302</span><span> }
</span><span>2303</span><span> }
</span><span>2304</span><span>2305</span><span>internal</span><span> Cursor CursorInternal
</span><span>2306</span><span> {
</span><span>2307</span><span>set</span><span>2308</span><span> {
</span><span>2309</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_ignoreCursorChange] = <span>true</span><span>;
</span><span>2310</span><span>try</span><span>2311</span><span> {
</span><span>2312</span><span>this</span>.Cursor =<span> value;
</span><span>2313</span><span> }
</span><span>2314</span><span>finally</span><span>2315</span><span> {
</span><span>2316</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_ignoreCursorChange] = <span>false</span><span>;
</span><span>2317</span><span> }
</span><span>2318</span><span> }
</span><span>2319</span><span> }
</span><span>2320</span><span>2321</span><span>internal</span><span> DataGridViewDataConnection DataConnection
</span><span>2322</span><span> {
</span><span>2323</span><span>get</span><span>2324</span><span> {
</span><span>2325</span><span>return</span><span>this</span><span>.dataConnection;
</span><span>2326</span><span> }
</span><span>2327</span><span> }
</span><span>2328</span><span>2329</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DataMember"]/*‘ /></span><span>2330</span><span> [
</span><span>2331</span> DefaultValue(<span>""</span><span>),
</span><span>2332</span><span> SRCategory(SR.CatData),
</span><span>2333</span> Editor(<span>"</span><span>System.Windows.Forms.Design.DataMemberListEditor, </span><span>"</span> + AssemblyRef.SystemDesign, <span>typeof</span><span>(System.Drawing.Design.UITypeEditor)),
</span><span>2334</span><span> SRDescription(SR.DataGridViewDataMemberDescr)
</span><span>2335</span><span> ]
</span><span>2336</span><span>public</span><span>string</span><span> DataMember
</span><span>2337</span><span> {
</span><span>2338</span><span>get</span><span>2339</span><span> {
</span><span>2340</span><span>if</span> (<span>this</span>.dataConnection == <span>null</span><span>)
</span><span>2341</span><span> {
</span><span>2342</span><span>return</span><span> String.Empty;
</span><span>2343</span><span> }
</span><span>2344</span><span>else</span><span>2345</span><span> {
</span><span>2346</span><span>return</span><span>this</span><span>.dataConnection.DataMember;
</span><span>2347</span><span> }
</span><span>2348</span><span> }
</span><span>2349</span><span>set</span><span>2350</span><span> {
</span><span>2351</span><span>if</span> (value != <span>this</span><span>.DataMember)
</span><span>2352</span><span> {
</span><span>2353</span><span>this</span>.CurrentCell = <span>null</span><span>;
</span><span>2354</span><span>if</span> (<span>this</span>.dataConnection == <span>null</span><span>)
</span><span>2355</span><span> {
</span><span>2356</span><span>this</span>.dataConnection = <span>new</span> DataGridViewDataConnection(<span>this</span><span>);
</span><span>2357</span><span> }
</span><span>2358</span><span>this</span>.dataConnection.SetDataConnection(<span>this</span><span>.DataSource, value);
</span><span>2359</span><span> OnDataMemberChanged(EventArgs.Empty);
</span><span>2360</span><span> }
</span><span>2361</span><span> }
</span><span>2362</span><span> }
</span><span>2363</span><span>2364</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DataMemberChanged"]/*‘ /></span><span>2365</span><span> [
</span><span>2366</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>2367</span><span> SRDescription(SR.DataGridViewDataMemberChangedDescr)
</span><span>2368</span><span> ]
</span><span>2369</span><span>public</span><span>event</span><span> EventHandler DataMemberChanged
</span><span>2370</span><span> {
</span><span>2371</span><span> add
</span><span>2372</span><span> {
</span><span>2373</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWDATAMEMBERCHANGED, value);
</span><span>2374</span><span> }
</span><span>2375</span><span> remove
</span><span>2376</span><span> {
</span><span>2377</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWDATAMEMBERCHANGED, value);
</span><span>2378</span><span> }
</span><span>2379</span><span> }
</span><span>2380</span><span>2381</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DataSource"]/*‘ /></span><span>2382</span><span> [
</span><span>2383</span> DefaultValue(<span>null</span><span>),
</span><span>2384</span><span> SRCategory(SR.CatData),
</span><span>2385</span><span> RefreshProperties(RefreshProperties.Repaint),
</span><span>2386</span> AttributeProvider(<span>typeof</span><span>(IListSource)),
</span><span>2387</span><span> SRDescription(SR.DataGridViewDataSourceDescr)
</span><span>2388</span><span> ]
</span><span>2389</span><span>public</span><span>object</span><span> DataSource
</span><span>2390</span><span> {
</span><span>2391</span><span>get</span><span>2392</span><span> {
</span><span>2393</span><span>if</span> (<span>this</span>.dataConnection == <span>null</span><span>)
</span><span>2394</span><span> {
</span><span>2395</span><span>return</span><span>null</span><span>;
</span><span>2396</span><span> }
</span><span>2397</span><span>else</span><span>2398</span><span> {
</span><span>2399</span><span>return</span><span>this</span><span>.dataConnection.DataSource;
</span><span>2400</span><span> }
</span><span>2401</span><span> }
</span><span>2402</span><span>set</span><span>2403</span><span> {
</span><span>2404</span><span>if</span> (value != <span>this</span><span>.DataSource)
</span><span>2405</span><span> {
</span><span>2406</span><span>this</span>.CurrentCell = <span>null</span><span>;
</span><span>2407</span><span>if</span> (<span>this</span>.dataConnection == <span>null</span><span>)
</span><span>2408</span><span> {
</span><span>2409</span><span>this</span>.dataConnection = <span>new</span> DataGridViewDataConnection(<span>this</span><span>);
</span><span>2410</span><span>this</span>.dataConnection.SetDataConnection(value, <span>this</span><span>.DataMember);
</span><span>2411</span><span> }
</span><span>2412</span><span>else</span><span>2413</span><span> {
</span><span>2414</span><span>if</span> (<span>this</span><span>.dataConnection.ShouldChangeDataMember(value))
</span><span>2415</span><span> {
</span><span>2416</span><span>//</span><span> we fire DataMemberChanged event</span><span>2417</span><span>this</span>.DataMember = <span>""</span><span>;
</span><span>2418</span><span> }
</span><span>2419</span><span>this</span>.dataConnection.SetDataConnection(value, <span>this</span><span>.DataMember);
</span><span>2420</span><span>if</span> (value == <span>null</span><span>)
</span><span>2421</span><span> {
</span><span>2422</span><span>this</span>.dataConnection = <span>null</span><span>;
</span><span>2423</span><span> }
</span><span>2424</span><span> }
</span><span>2425</span><span> OnDataSourceChanged(EventArgs.Empty);
</span><span>2426</span><span> }
</span><span>2427</span><span> }
</span><span>2428</span><span> }
</span><span>2429</span><span>2430</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DataSourceChanged"]/*‘ /></span><span>2431</span><span> [
</span><span>2432</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>2433</span><span> SRDescription(SR.DataGridViewDataSourceChangedDescr)
</span><span>2434</span><span> ]
</span><span>2435</span><span>public</span><span>event</span><span> EventHandler DataSourceChanged
</span><span>2436</span><span> {
</span><span>2437</span><span> add
</span><span>2438</span><span> {
</span><span>2439</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWDATASOURCECHANGED, value);
</span><span>2440</span><span> }
</span><span>2441</span><span> remove
</span><span>2442</span><span> {
</span><span>2443</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWDATASOURCECHANGED, value);
</span><span>2444</span><span> }
</span><span>2445</span><span> }
</span><span>2446</span><span>2447</span><span>private</span><span>static</span><span> SolidBrush DefaultBackBrush
</span><span>2448</span><span> {
</span><span>2449</span><span>get</span><span>2450</span><span> {
</span><span>2451</span><span>return</span><span> (SolidBrush) SystemBrushes.Window;
</span><span>2452</span><span> }
</span><span>2453</span><span> }
</span><span>2454</span><span>2455</span><span>private</span><span>static</span><span> SolidBrush DefaultBackgroundBrush
</span><span>2456</span><span> {
</span><span>2457</span><span>get</span><span>2458</span><span> {
</span><span>2459</span><span>return</span><span> (SolidBrush) SystemBrushes.AppWorkspace;
</span><span>2460</span><span> }
</span><span>2461</span><span> }
</span><span>2462</span><span>2463</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DefaultCellStyle"]/*‘ /></span><span>2464</span><span> [
</span><span>2465</span><span> SRCategory(SR.CatAppearance),
</span><span>2466</span><span> SRDescription(SR.DataGridView_DefaultCellStyleDescr),
</span><span>2467</span> AmbientValue(<span>null</span><span>)
</span><span>2468</span><span> ]
</span><span>2469</span><span>public</span><span> DataGridViewCellStyle DefaultCellStyle
</span><span>2470</span><span> {
</span><span>2471</span><span>get</span><span>2472</span><span> {
</span><span>2473</span><span>if</span> (<span>this</span>.defaultCellStyle == <span>null</span><span>)
</span><span>2474</span><span> {
</span><span>2475</span><span>this</span>.defaultCellStyle = <span>this</span><span>.DefaultDefaultCellStyle;
</span><span>2476</span><span>return</span><span>this</span><span>.defaultCellStyle;
</span><span>2477</span><span> }
</span><span>2478</span><span>else</span><span>if</span> (<span>this</span>.defaultCellStyle.BackColor == Color.Empty ||
<span>2479</span><span>this</span>.defaultCellStyle.ForeColor == Color.Empty ||
<span>2480</span><span>this</span>.defaultCellStyle.SelectionBackColor == Color.Empty ||
<span>2481</span><span>this</span>.defaultCellStyle.SelectionForeColor == Color.Empty ||
<span>2482</span><span>this</span>.defaultCellStyle.Font == <span>null</span> ||
<span>2483</span><span>this</span>.defaultCellStyle.Alignment == DataGridViewContentAlignment.NotSet ||
<span>2484</span><span>this</span>.defaultCellStyle.WrapMode ==<span> DataGridViewTriState.NotSet)
</span><span>2485</span><span> {
</span><span>2486</span> DataGridViewCellStyle defaultCellStyleTmp = <span>new</span> DataGridViewCellStyle(<span>this</span><span>.defaultCellStyle);
</span><span>2487</span> defaultCellStyleTmp.Scope =<span> DataGridViewCellStyleScopes.None;
</span><span>2488</span><span>if</span> (<span>this</span>.defaultCellStyle.BackColor ==<span> Color.Empty)
</span><span>2489</span><span> {
</span><span>2490</span> defaultCellStyleTmp.BackColor =<span> DefaultBackBrush.Color;
</span><span>2491</span><span> }
</span><span>2492</span><span>if</span> (<span>this</span>.defaultCellStyle.ForeColor ==<span> Color.Empty)
</span><span>2493</span><span> {
</span><span>2494</span> defaultCellStyleTmp.ForeColor = <span>base</span><span>.ForeColor;
</span><span>2495</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_ambientForeColor] = <span>true</span><span>;
</span><span>2496</span><span> }
</span><span>2497</span><span>if</span> (<span>this</span>.defaultCellStyle.SelectionBackColor ==<span> Color.Empty)
</span><span>2498</span><span> {
</span><span>2499</span> defaultCellStyleTmp.SelectionBackColor =<span> DefaultSelectionBackBrush.Color;
</span><span>2500</span><span> }
</span><span>2501</span><span>if</span> (<span>this</span>.defaultCellStyle.SelectionForeColor ==<span> Color.Empty)
</span><span>2502</span><span> {
</span><span>2503</span> defaultCellStyleTmp.SelectionForeColor =<span> DefaultSelectionForeBrush.Color;
</span><span>2504</span><span> }
</span><span>2505</span><span>if</span> (<span>this</span>.defaultCellStyle.Font == <span>null</span><span>)
</span><span>2506</span><span> {
</span><span>2507</span> defaultCellStyleTmp.Font = <span>base</span><span>.Font;
</span><span>2508</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_ambientFont] = <span>true</span><span>;
</span><span>2509</span><span> }
</span><span>2510</span><span>if</span> (<span>this</span>.defaultCellStyle.Alignment ==<span> DataGridViewContentAlignment.NotSet)
</span><span>2511</span><span> {
</span><span>2512</span> defaultCellStyleTmp.AlignmentInternal =<span> DataGridViewContentAlignment.MiddleLeft;
</span><span>2513</span><span> }
</span><span>2514</span><span>if</span> (<span>this</span>.defaultCellStyle.WrapMode ==<span> DataGridViewTriState.NotSet)
</span><span>2515</span><span> {
</span><span>2516</span> defaultCellStyleTmp.WrapModeInternal =<span> DataGridViewTriState.False;
</span><span>2517</span><span> }
</span><span>2518</span> defaultCellStyleTmp.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.DataGridView);
</span><span>2519</span><span>return</span><span> defaultCellStyleTmp;
</span><span>2520</span><span> }
</span><span>2521</span><span>else</span><span>2522</span><span> {
</span><span>2523</span><span>return</span><span>this</span><span>.defaultCellStyle;
</span><span>2524</span><span> }
</span><span>2525</span><span> }
</span><span>2526</span><span>set</span><span>2527</span><span> {
</span><span>2528</span> DataGridViewCellStyle cs = <span>this</span><span>.DefaultCellStyle;
</span><span>2529</span><span> cs.RemoveScope(DataGridViewCellStyleScopes.DataGridView);
</span><span>2530</span><span>this</span>.defaultCellStyle =<span> value;
</span><span>2531</span><span>if</span> (value != <span>null</span><span>)
</span><span>2532</span><span> {
</span><span>2533</span><span>this</span>.defaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.DataGridView);
</span><span>2534</span><span> }
</span><span>2535</span> DataGridViewCellStyleDifferences dgvcsc = cs.GetDifferencesFrom(<span>this</span><span>.DefaultCellStyle);
</span><span>2536</span><span>if</span> (dgvcsc !=<span> DataGridViewCellStyleDifferences.None)
</span><span>2537</span><span> {
</span><span>2538</span><span>this</span>.CellStyleChangedEventArgs.ChangeAffectsPreferredSize = (dgvcsc ==<span> DataGridViewCellStyleDifferences.AffectPreferredSize);
</span><span>2539</span> OnDefaultCellStyleChanged(<span>this</span><span>.CellStyleChangedEventArgs);
</span><span>2540</span><span> }
</span><span>2541</span><span> }
</span><span>2542</span><span> }
</span><span>2543</span><span>2544</span><span>private</span><span> DataGridViewCellStyle DefaultDefaultCellStyle
</span><span>2545</span><span> {
</span><span>2546</span><span>get</span><span>2547</span><span> {
</span><span>2548</span> DataGridViewCellStyle defaultCellStyle = <span>new</span><span> DataGridViewCellStyle();
</span><span>2549</span> defaultCellStyle.BackColor =<span> DefaultBackBrush.Color;
</span><span>2550</span> defaultCellStyle.ForeColor = <span>base</span><span>.ForeColor;
</span><span>2551</span> defaultCellStyle.SelectionBackColor =<span> DefaultSelectionBackBrush.Color;
</span><span>2552</span> defaultCellStyle.SelectionForeColor =<span> DefaultSelectionForeBrush.Color;
</span><span>2553</span> defaultCellStyle.Font = <span>base</span><span>.Font;
</span><span>2554</span> defaultCellStyle.AlignmentInternal =<span> DataGridViewContentAlignment.MiddleLeft;
</span><span>2555</span> defaultCellStyle.WrapModeInternal =<span> DataGridViewTriState.False;
</span><span>2556</span> defaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.DataGridView);
</span><span>2557</span><span>2558</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_ambientFont] = <span>true</span><span>;
</span><span>2559</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_ambientForeColor] = <span>true</span><span>;
</span><span>2560</span><span>2561</span><span>return</span><span> defaultCellStyle;
</span><span>2562</span><span> }
</span><span>2563</span><span> }
</span><span>2564</span><span>2565</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DefaultCellStyleChanged"]/*‘ /></span><span>2566</span><span> [
</span><span>2567</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>2568</span><span> SRDescription(SR.DataGridViewDefaultCellStyleChangedDescr)
</span><span>2569</span><span> ]
</span><span>2570</span><span>public</span><span>event</span><span> EventHandler DefaultCellStyleChanged
</span><span>2571</span><span> {
</span><span>2572</span><span> add
</span><span>2573</span><span> {
</span><span>2574</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWDEFAULTCELLSTYLECHANGED, value);
</span><span>2575</span><span> }
</span><span>2576</span><span> remove
</span><span>2577</span><span> {
</span><span>2578</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWDEFAULTCELLSTYLECHANGED, value);
</span><span>2579</span><span> }
</span><span>2580</span><span> }
</span><span>2581</span><span>2582</span><span>private</span><span>static</span><span> SolidBrush DefaultForeBrush
</span><span>2583</span><span> {
</span><span>2584</span><span>get</span><span>2585</span><span> {
</span><span>2586</span><span>return</span><span> (SolidBrush) SystemBrushes.WindowText;
</span><span>2587</span><span> }
</span><span>2588</span><span> }
</span><span>2589</span><span>2590</span><span>private</span><span>static</span><span> Color DefaultGridColor
</span><span>2591</span><span> {
</span><span>2592</span><span>get</span><span>2593</span><span> {
</span><span>2594</span><span>return</span><span> SystemColors.ControlDark;
</span><span>2595</span><span> }
</span><span>2596</span><span> }
</span><span>2597</span><span>2598</span><span>private</span><span>static</span><span> SolidBrush DefaultHeadersBackBrush
</span><span>2599</span><span> {
</span><span>2600</span><span>get</span><span>2601</span><span> {
</span><span>2602</span><span>return</span><span> (SolidBrush) SystemBrushes.Control;
</span><span>2603</span><span> }
</span><span>2604</span><span> }
</span><span>2605</span><span>2606</span><span>private</span><span> DataGridViewCellStyle DefaultRowHeadersDefaultCellStyle
</span><span>2607</span><span> {
</span><span>2608</span><span>get</span><span>2609</span><span> {
</span><span>2610</span> DataGridViewCellStyle defaultStyle = <span>new</span><span> DataGridViewCellStyle();
</span><span>2611</span> defaultStyle.BackColor =<span> DefaultHeadersBackBrush.Color;
</span><span>2612</span> defaultStyle.ForeColor =<span> DefaultForeBrush.Color;
</span><span>2613</span> defaultStyle.SelectionBackColor =<span> DefaultSelectionBackBrush.Color;
</span><span>2614</span> defaultStyle.SelectionForeColor =<span> DefaultSelectionForeBrush.Color;
</span><span>2615</span> defaultStyle.Font = <span>base</span><span>.Font;
</span><span>2616</span> defaultStyle.AlignmentInternal =<span> DataGridViewContentAlignment.MiddleLeft;
</span><span>2617</span> defaultStyle.WrapModeInternal =<span> DataGridViewTriState.True;
</span><span>2618</span> defaultStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.RowHeaders);
</span><span>2619</span><span>2620</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_ambientRowHeadersFont] = <span>true</span><span>;
</span><span>2621</span><span>2622</span><span>return</span><span> defaultStyle;
</span><span>2623</span><span> }
</span><span>2624</span><span> }
</span><span>2625</span><span>2626</span><span>private</span><span>static</span><span> SolidBrush DefaultSelectionBackBrush
</span><span>2627</span><span> {
</span><span>2628</span><span>get</span><span>2629</span><span> {
</span><span>2630</span><span>return</span><span> (SolidBrush) SystemBrushes.Highlight;
</span><span>2631</span><span> }
</span><span>2632</span><span> }
</span><span>2633</span><span>2634</span><span>private</span><span>static</span><span> SolidBrush DefaultSelectionForeBrush
</span><span>2635</span><span> {
</span><span>2636</span><span>get</span><span>2637</span><span> {
</span><span>2638</span><span>return</span><span> (SolidBrush) SystemBrushes.HighlightText;
</span><span>2639</span><span> }
</span><span>2640</span><span> }
</span><span>2641</span><span>2642</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DefaultSize"]/*‘ /></span><span>2643</span><span>protected</span><span>override</span><span> Size DefaultSize
</span><span>2644</span><span> {
</span><span>2645</span><span>get</span><span>2646</span><span> {
</span><span>2647</span><span>return</span><span>new</span> Size(<span>240</span>, <span>150</span><span>);
</span><span>2648</span><span> }
</span><span>2649</span><span> }
</span><span>2650</span><span>2651</span><span>internal</span><span> DisplayedBandsData DisplayedBandsInfo
</span><span>2652</span><span> {
</span><span>2653</span><span>get</span><span>2654</span><span> {
</span><span>2655</span><span>return</span><span>this</span><span>.displayedBandsInfo;
</span><span>2656</span><span> }
</span><span>2657</span><span> }
</span><span>2658</span><span>2659</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DisplayRectangle"]/*‘ /></span><span>2660</span><span>///</span><span><devdoc></span><span>2661</span><span>///</span><span> Returns the client rect of the display area of the control.
</span><span>2662</span><span>///</span><span> The DataGridView control return its client rectangle minus the potential scrollbars.
</span><span>2663</span><span>///</span><span></devdoc></span><span>2664</span><span>public</span><span>override</span><span> Rectangle DisplayRectangle {
</span><span>2665</span><span>get</span><span> {
</span><span>2666</span> Rectangle rectDisplay = <span>this</span><span>.ClientRectangle;
</span><span>2667</span><span>if</span> (<span>this</span>.horizScrollBar != <span>null</span> && <span>this</span><span>.horizScrollBar.Visible)
</span><span>2668</span><span> {
</span><span>2669</span> rectDisplay.Height -= <span>this</span><span>.horizScrollBar.Height;
</span><span>2670</span><span> }
</span><span>2671</span><span>if</span> (<span>this</span>.vertScrollBar != <span>null</span> && <span>this</span><span>.vertScrollBar.Visible)
</span><span>2672</span><span> {
</span><span>2673</span> rectDisplay.Width -= <span>this</span><span>.vertScrollBar.Width;
</span><span>2674</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span>2675</span><span> {
</span><span>2676</span> rectDisplay.X = <span>this</span><span>.vertScrollBar.Width;
</span><span>2677</span><span> }
</span><span>2678</span><span> }
</span><span>2679</span><span>return</span><span> rectDisplay;
</span><span>2680</span><span> }
</span><span>2681</span><span> }
</span><span>2682</span><span>2683</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.EditMode"]/*‘ /></span><span>2684</span><span> [
</span><span>2685</span><span> SRCategory(SR.CatBehavior),
</span><span>2686</span><span> DefaultValue(DataGridViewEditMode.EditOnKeystrokeOrF2),
</span><span>2687</span><span> SRDescription(SR.DataGridView_EditModeDescr)
</span><span>2688</span><span> ]
</span><span>2689</span><span>public</span><span> DataGridViewEditMode EditMode
</span><span>2690</span><span> {
</span><span>2691</span><span>get</span><span>2692</span><span> {
</span><span>2693</span><span>return</span><span>this</span><span>.editMode;
</span><span>2694</span><span> }
</span><span>2695</span><span>set</span><span>2696</span><span> {
</span><span>2697</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x4</span><span>2698</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewEditMode.EditOnEnter, (<span>int</span><span>)DataGridViewEditMode.EditProgrammatically))
</span><span>2699</span><span> {
</span><span>2700</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewEditMode));
</span><span>2701</span><span> }
</span><span>2702</span><span>if</span> (<span>this</span>.editMode !=<span> value)
</span><span>2703</span><span> {
</span><span>2704</span><span>this</span>.editMode =<span> value;
</span><span>2705</span><span> OnEditModeChanged(EventArgs.Empty);
</span><span>2706</span><span> }
</span><span>2707</span><span> }
</span><span>2708</span><span> }
</span><span>2709</span><span>2710</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.EditModeChanged"]/*‘ /></span><span>2711</span><span> [
</span><span>2712</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>2713</span><span> SRDescription(SR.DataGridView_EditModeChangedDescr)
</span><span>2714</span><span> ]
</span><span>2715</span><span>public</span><span>event</span><span> EventHandler EditModeChanged
</span><span>2716</span><span> {
</span><span>2717</span><span> add
</span><span>2718</span><span> {
</span><span>2719</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWEDITMODECHANGED, value);
</span><span>2720</span><span> }
</span><span>2721</span><span> remove
</span><span>2722</span><span> {
</span><span>2723</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWEDITMODECHANGED, value);
</span><span>2724</span><span> }
</span><span>2725</span><span> }
</span><span>2726</span><span>2727</span><span>internal</span><span> Point MouseEnteredCellAddress
</span><span>2728</span><span> {
</span><span>2729</span><span>get</span><span>2730</span><span> {
</span><span>2731</span><span>return</span><span>this</span><span>.ptMouseEnteredCell;
</span><span>2732</span><span> }
</span><span>2733</span><span> }
</span><span>2734</span><span>2735</span><span>private</span><span>bool</span><span> MouseOverEditingControl
</span><span>2736</span><span> {
</span><span>2737</span><span>get</span><span>2738</span><span> {
</span><span>2739</span><span>if</span> (<span>this</span>.editingControl != <span>null</span><span>)
</span><span>2740</span><span> {
</span><span>2741</span> Point ptMouse =<span> PointToClient(Control.MousePosition);
</span><span>2742</span><span>return</span><span>this</span><span>.editingControl.Bounds.Contains(ptMouse);
</span><span>2743</span><span> }
</span><span>2744</span><span>return</span><span>false</span><span>;
</span><span>2745</span><span> }
</span><span>2746</span><span> }
</span><span>2747</span><span>2748</span><span>private</span><span>bool</span><span> MouseOverEditingPanel
</span><span>2749</span><span> {
</span><span>2750</span><span>get</span><span>2751</span><span> {
</span><span>2752</span><span>if</span> (<span>this</span>.editingPanel != <span>null</span><span>)
</span><span>2753</span><span> {
</span><span>2754</span> Point ptMouse =<span> PointToClient(Control.MousePosition);
</span><span>2755</span><span>return</span><span>this</span><span>.editingPanel.Bounds.Contains(ptMouse);
</span><span>2756</span><span> }
</span><span>2757</span><span>return</span><span>false</span><span>;
</span><span>2758</span><span> }
</span><span>2759</span><span> }
</span><span>2760</span><span>2761</span><span>private</span><span>bool</span><span> MouseOverScrollBar
</span><span>2762</span><span> {
</span><span>2763</span><span>get</span><span>2764</span><span> {
</span><span>2765</span> Point ptMouse =<span> PointToClient(Control.MousePosition);
</span><span>2766</span><span>if</span> (<span>this</span>.vertScrollBar != <span>null</span> && <span>this</span><span>.vertScrollBar.Visible)
</span><span>2767</span><span> {
</span><span>2768</span><span>if</span> (<span>this</span><span>.vertScrollBar.Bounds.Contains(ptMouse))
</span><span>2769</span><span> {
</span><span>2770</span><span>return</span><span>true</span><span>;
</span><span>2771</span><span> }
</span><span>2772</span><span> }
</span><span>2773</span><span>if</span> (<span>this</span>.horizScrollBar != <span>null</span> && <span>this</span><span>.horizScrollBar.Visible)
</span><span>2774</span><span> {
</span><span>2775</span><span>return</span><span>this</span><span>.horizScrollBar.Bounds.Contains(ptMouse);
</span><span>2776</span><span> }
</span><span>2777</span><span>return</span><span>false</span><span>;
</span><span>2778</span><span> }
</span><span>2779</span><span> }
</span><span>2780</span><span>2781</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.EditingControl"]/*‘ /></span><span>2782</span><span> [
</span><span>2783</span> Browsable(<span>false</span><span>),
</span><span>2784</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>2785</span><span> ]
</span><span>2786</span><span>public</span><span> Control EditingControl
</span><span>2787</span><span> {
</span><span>2788</span><span>get</span><span>2789</span><span> {
</span><span>2790</span><span>return</span><span>this</span><span>.editingControl;
</span><span>2791</span><span> }
</span><span>2792</span><span> }
</span><span>2793</span><span>2794</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.EditingPanel"]/*‘ /></span><span>2795</span><span> [
</span><span>2796</span> Browsable(<span>false</span><span>),
</span><span>2797</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>2798</span><span> ]
</span><span>2799</span><span>public</span><span> Panel EditingPanel
</span><span>2800</span><span> {
</span><span>2801</span><span>get</span><span>2802</span><span> {
</span><span>2803</span><span>if</span> (<span>this</span>.editingPanel == <span>null</span><span>)
</span><span>2804</span><span> {
</span><span>2805</span><span>this</span>.editingPanel = <span>new</span><span> Panel();
</span><span>2806</span><span>this</span>.editingPanel.AccessibleName =<span> SR.GetString(SR.DataGridView_AccEditingPanelAccName);
</span><span>2807</span><span> }
</span><span>2808</span><span>return</span><span>this</span><span>.editingPanel;
</span><span>2809</span><span> }
</span><span>2810</span><span> }
</span><span>2811</span><span>2812</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.EnableHeadersVisualStyles"]/*‘ /></span><span>2813</span><span>///</span><span><devdoc></span><span>2814</span><span>///</span><span><para></span><span>2815</span><span>///</span><span> Determines whether the DataGridView‘s header cells render using XP theming visual styles or not
</span><span>2816</span><span>///</span><span> when visual styles are enabled in the application.
</span><span>2817</span><span>///</span><span></para></span><span>2818</span><span>///</span><span></devdoc></span><span>2819</span><span> [
</span><span>2820</span><span> SRCategory(SR.CatAppearance),
</span><span>2821</span> DefaultValue(<span>true</span><span>),
</span><span>2822</span><span> SRDescription(SR.DataGridView_EnableHeadersVisualStylesDescr)
</span><span>2823</span><span> ]
</span><span>2824</span><span>public</span><span>bool</span><span> EnableHeadersVisualStyles
</span><span>2825</span><span> {
</span><span>2826</span><span>get</span><span>2827</span><span> {
</span><span>2828</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_enableHeadersVisualStyles];
</span><span>2829</span><span> }
</span><span>2830</span><span>set</span><span>2831</span><span> {
</span><span>2832</span><span>if</span> (<span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_enableHeadersVisualStyles] !=<span> value)
</span><span>2833</span><span> {
</span><span>2834</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_enableHeadersVisualStyles] =<span> value;
</span><span>2835</span><span>//</span><span>OnEnableHeadersVisualStylesChanged(EventArgs.Empty);
</span><span>2836</span><span>//</span><span> Some autosizing may have to be applied since the margins are potentially changed.</span><span>2837</span> OnGlobalAutoSize(); <span>//</span><span> Put this into OnEnableHeadersVisualStylesChanged if created.</span><span>2838</span><span> }
</span><span>2839</span><span> }
</span><span>2840</span><span> }
</span><span>2841</span><span>2842</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.FirstDisplayedCell"]/*‘ /></span><span>2843</span><span> [
</span><span>2844</span> Browsable(<span>false</span><span>),
</span><span>2845</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>2846</span><span> ]
</span><span>2847</span><span>public</span><span> DataGridViewCell FirstDisplayedCell
</span><span>2848</span><span> {
</span><span>2849</span><span>get</span><span>2850</span><span> {
</span><span>2851</span> Point firstDisplayedCellAddress = <span>this</span><span>.FirstDisplayedCellAddress;
</span><span>2852</span><span>if</span> (firstDisplayedCellAddress.X >= <span>0</span><span>)
</span><span>2853</span><span> {
</span><span>2854</span><span>return</span><span>this</span>.Rows[firstDisplayedCellAddress.Y].Cells[firstDisplayedCellAddress.X]; <span>//</span><span> unshares the row of first displayed cell</span><span>2855</span><span> }
</span><span>2856</span><span>return</span><span>null</span><span>;
</span><span>2857</span><span> }
</span><span>2858</span><span>set</span><span>2859</span><span> {
</span><span>2860</span><span>if</span> (value != <span>null</span><span>)
</span><span>2861</span><span> {
</span><span>2862</span> DataGridViewCell firstDisplayedCell =<span> value;
</span><span>2863</span><span>if</span> (firstDisplayedCell.DataGridView != <span>this</span><span>)
</span><span>2864</span><span> {
</span><span>2865</span><span>throw</span><span>new</span><span> ArgumentException(SR.GetString(SR.DataGridView_CellDoesNotBelongToDataGridView));
</span><span>2866</span><span> }
</span><span>2867</span><span>if</span> (firstDisplayedCell.RowIndex == -<span>1</span> || firstDisplayedCell.ColumnIndex == -<span>1</span><span>)
</span><span>2868</span><span> {
</span><span>2869</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FirstDisplayedCellCannotBeAHeaderOrSharedCell));
</span><span>2870</span><span> }
</span><span>2871</span><span>2872</span> Debug.Assert(firstDisplayedCell.RowIndex >= <span>0</span> &&
<span>2873</span> firstDisplayedCell.RowIndex < <span>this</span>.Rows.Count &&
<span>2874</span> firstDisplayedCell.ColumnIndex >= <span>0</span> &&
<span>2875</span> firstDisplayedCell.ColumnIndex < <span>this</span><span>.Columns.Count);
</span><span>2876</span><span>2877</span><span>if</span> (!<span>firstDisplayedCell.Visible)
</span><span>2878</span><span> {
</span><span>2879</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FirstDisplayedCellCannotBeInvisible));
</span><span>2880</span><span> }
</span><span>2881</span><span>2882</span><span>if</span> (!<span>firstDisplayedCell.Frozen)
</span><span>2883</span><span> {
</span><span>2884</span><span>if</span> (!<span>this</span><span>.Rows[firstDisplayedCell.RowIndex].Frozen)
</span><span>2885</span><span> {
</span><span>2886</span><span>this</span>.FirstDisplayedScrollingRowIndex =<span> firstDisplayedCell.RowIndex;
</span><span>2887</span><span> }
</span><span>2888</span><span>2889</span><span>if</span> (!<span>this</span><span>.Columns[firstDisplayedCell.ColumnIndex].Frozen)
</span><span>2890</span><span> {
</span><span>2891</span><span>this</span>.FirstDisplayedScrollingColumnIndex =<span> firstDisplayedCell.ColumnIndex;
</span><span>2892</span><span> }
</span><span>2893</span><span> }
</span><span>2894</span><span> }
</span><span>2895</span><span> }
</span><span>2896</span><span> }
</span><span>2897</span><span>2898</span><span>private</span><span> Point FirstDisplayedCellAddress
</span><span>2899</span><span> {
</span><span>2900</span><span>get</span><span>2901</span><span> {
</span><span>2902</span> Point ptFirstDisplayedCellAddress = <span>new</span> Point(-<span>1</span>, -<span>1</span><span>);
</span><span>2903</span> ptFirstDisplayedCellAddress.Y = <span>this</span>.Rows.GetFirstRow(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>2904</span><span>if</span> (ptFirstDisplayedCellAddress.Y == -<span>1</span><span>)
</span><span>2905</span><span> {
</span><span>2906</span> Debug.Assert(<span>this</span>.displayedBandsInfo.NumTotallyDisplayedFrozenRows == <span>0</span><span>);
</span><span>2907</span><span>if</span> (<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingRow >= <span>0</span><span>)
</span><span>2908</span><span> {
</span><span>2909</span> ptFirstDisplayedCellAddress.Y = <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow;
</span><span>2910</span><span> }
</span><span>2911</span><span>#if</span> DEBUG
<span>2912</span><span>else</span><span>2913</span><span> {
</span><span>2914</span> Debug.Assert(<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingRow == -<span>1</span><span>);
</span><span>2915</span> Debug.Assert(<span>this</span>.displayedBandsInfo.NumDisplayedScrollingRows == <span>0</span><span>);
</span><span>2916</span> Debug.Assert(<span>this</span>.displayedBandsInfo.NumTotallyDisplayedScrollingRows == <span>0</span><span>);
</span><span>2917</span><span> }
</span><span>2918</span><span>#endif</span><span>2919</span><span> }
</span><span>2920</span><span>if</span> (ptFirstDisplayedCellAddress.Y >= <span>0</span><span>)
</span><span>2921</span><span> {
</span><span>2922</span> ptFirstDisplayedCellAddress.X = <span>this</span><span>.FirstDisplayedColumnIndex;
</span><span>2923</span><span> }
</span><span>2924</span><span>return</span><span> ptFirstDisplayedCellAddress;
</span><span>2925</span><span> }
</span><span>2926</span><span> }
</span><span>2927</span><span>2928</span><span>internal</span><span>int</span><span> FirstDisplayedColumnIndex
</span><span>2929</span><span> {
</span><span>2930</span><span>get</span><span>2931</span><span> {
</span><span>2932</span><span>if</span> (!<span>this</span><span>.IsHandleCreated)
</span><span>2933</span><span> {
</span><span>2934</span><span>return</span> -<span>1</span><span>;
</span><span>2935</span><span> }
</span><span>2936</span><span>2937</span><span>int</span> firstDisplayedColumnIndex = -<span>1</span><span>;
</span><span>2938</span> DataGridViewColumn dataGridViewColumn = <span>this</span><span>.Columns.GetFirstColumn(DataGridViewElementStates.Visible);
</span><span>2939</span><span>if</span> (dataGridViewColumn != <span>null</span><span>)
</span><span>2940</span><span> {
</span><span>2941</span><span>if</span><span> (dataGridViewColumn.Frozen)
</span><span>2942</span><span> {
</span><span>2943</span> firstDisplayedColumnIndex =<span> dataGridViewColumn.Index;
</span><span>2944</span><span> }
</span><span>2945</span><span>else</span><span>if</span> (<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol >= <span>0</span><span>)
</span><span>2946</span><span> {
</span><span>2947</span> firstDisplayedColumnIndex = <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol;
</span><span>2948</span><span> }
</span><span>2949</span><span> }
</span><span>2950</span><span>#if</span> DEBUG
<span>2951</span> DataGridViewColumn dataGridViewColumnDbg1 = <span>this</span><span>.Columns.GetFirstColumn(DataGridViewElementStates.Displayed);
</span><span>2952</span><span>int</span> firstDisplayedColumnIndexDbg1 = (dataGridViewColumnDbg1 == <span>null</span>) ? -<span>1</span><span> : dataGridViewColumnDbg1.Index;
</span><span>2953</span><span>2954</span><span>int</span> firstDisplayedColumnIndexDbg2 = -<span>1</span><span>;
</span><span>2955</span> DataGridViewColumn dataGridViewColumnDbg = <span>this</span>.Columns.GetFirstColumn(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>2956</span><span>if</span> (dataGridViewColumnDbg != <span>null</span><span>)
</span><span>2957</span><span> {
</span><span>2958</span> firstDisplayedColumnIndexDbg2 =<span> dataGridViewColumnDbg.Index;
</span><span>2959</span><span> }
</span><span>2960</span><span>else</span><span>if</span> (<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol >= <span>0</span><span>)
</span><span>2961</span><span> {
</span><span>2962</span> firstDisplayedColumnIndexDbg2 = <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol;
</span><span>2963</span><span> }
</span><span>2964</span><span>else</span><span>2965</span><span> {
</span><span>2966</span> Debug.Assert(<span>this</span>.displayedBandsInfo.LastTotallyDisplayedScrollingCol == -<span>1</span><span>);
</span><span>2967</span><span> }
</span><span>2968</span> Debug.Assert(firstDisplayedColumnIndex == firstDisplayedColumnIndexDbg1 || !<span>this</span>.Visible || <span>this</span><span>.displayedBandsInfo.Dirty);
</span><span>2969</span> Debug.Assert(firstDisplayedColumnIndex == firstDisplayedColumnIndexDbg2 || <span>this</span><span>.displayedBandsInfo.Dirty);
</span><span>2970</span><span>#endif</span><span>2971</span><span>return</span><span> firstDisplayedColumnIndex;
</span><span>2972</span><span> }
</span><span>2973</span><span> }
</span><span>2974</span><span>2975</span><span>internal</span><span>int</span><span> FirstDisplayedRowIndex
</span><span>2976</span><span> {
</span><span>2977</span><span>get</span><span>2978</span><span> {
</span><span>2979</span><span>if</span> (!<span>this</span><span>.IsHandleCreated)
</span><span>2980</span><span> {
</span><span>2981</span><span>return</span> -<span>1</span><span>;
</span><span>2982</span><span> }
</span><span>2983</span><span>2984</span><span>int</span> firstDisplayedRowIndex = <span>this</span><span>.Rows.GetFirstRow(DataGridViewElementStates.Visible);
</span><span>2985</span><span>if</span> (firstDisplayedRowIndex != -<span>1</span><span>)
</span><span>2986</span><span> {
</span><span>2987</span><span>if</span> ((<span>this</span>.Rows.GetRowState(firstDisplayedRowIndex) & DataGridViewElementStates.Frozen) == <span>0</span> &&
<span>2988</span><span>this</span>.displayedBandsInfo.FirstDisplayedScrollingRow >= <span>0</span><span>)
</span><span>2989</span><span> {
</span><span>2990</span> firstDisplayedRowIndex = <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow;
</span><span>2991</span><span> }
</span><span>2992</span><span> }
</span><span>2993</span><span>#if</span> FALSE <span>//</span><span>DEBUG</span><span>2994</span><span>int</span> firstDisplayedRowIndexDbg1 = <span>this</span><span>.Rows.GetFirstRow(DataGridViewElementStates.Displayed);
</span><span>2995</span><span>2996</span><span>int</span> firstDisplayedRowIndexDbg2 = <span>this</span>.Rows.GetFirstRow(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>2997</span><span>if</span> (firstDisplayedRowIndexDbg2 == -<span>1</span><span>)
</span><span>2998</span><span> {
</span><span>2999</span><span>if</span> (<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingRow >= <span>0</span><span>)
</span><span>3000</span><span> {
</span><span>3001</span> firstDisplayedRowIndexDbg2 = <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow;
</span><span>3002</span><span> }
</span><span>3003</span><span> }
</span><span>3004</span><span>3005</span> Debug.Assert(firstDisplayedRowIndex == firstDisplayedRowIndexDbg1 || !<span>this</span>.Visible || <span>this</span>.displayedBandsInfo.Dirty, <span>"</span><span>firstDisplayedRowIndex =</span><span>"</span> + firstDisplayedRowIndex.ToString() + <span>"</span><span>, firstDisplayedRowIndexDbg1=</span><span>"</span> +<span> firstDisplayedRowIndexDbg1.ToString());
</span><span>3006</span> Debug.Assert(firstDisplayedRowIndex == firstDisplayedRowIndexDbg2 || <span>this</span>.displayedBandsInfo.Dirty, <span>"</span><span>firstDisplayedRowIndex =</span><span>"</span> + firstDisplayedRowIndex.ToString() + <span>"</span><span>, firstDisplayedRowIndexDbg2=</span><span>"</span> +<span> firstDisplayedRowIndexDbg2.ToString());
</span><span>3007</span><span>#endif</span><span>3008</span><span>return</span><span> firstDisplayedRowIndex;
</span><span>3009</span><span> }
</span><span>3010</span><span> }
</span><span>3011</span><span>3012</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.FirstDisplayedScrollingColumnHiddenWidth"]/*‘ /></span><span>3013</span><span> [
</span><span>3014</span> Browsable(<span>false</span><span>),
</span><span>3015</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>3016</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3017</span><span> ]
</span><span>3018</span><span>public</span><span>int</span><span> FirstDisplayedScrollingColumnHiddenWidth
</span><span>3019</span><span> {
</span><span>3020</span><span>get</span><span>3021</span><span> {
</span><span>3022</span><span>return</span><span>this</span><span>.negOffset;
</span><span>3023</span><span> }
</span><span>3024</span><span> }
</span><span>3025</span><span>3026</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.FirstDisplayedScrollingColumnIndex"]/*‘ /></span><span>3027</span><span> [
</span><span>3028</span> Browsable(<span>false</span><span>),
</span><span>3029</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3030</span><span> ]
</span><span>3031</span><span>public</span><span>int</span><span> FirstDisplayedScrollingColumnIndex
</span><span>3032</span><span> {
</span><span>3033</span><span>get</span><span>3034</span><span> {
</span><span>3035</span><span>return</span><span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol;
</span><span>3036</span><span> }
</span><span>3037</span><span>set</span><span>3038</span><span> {
</span><span>3039</span><span>if</span> (value < <span>0</span> || value >= <span>this</span><span>.Columns.Count)
</span><span>3040</span><span> {
</span><span>3041</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>value</span><span>"</span><span>);
</span><span>3042</span><span> }
</span><span>3043</span><span>if</span> (!<span>this</span><span>.Columns[value].Visible)
</span><span>3044</span><span> {
</span><span>3045</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FirstDisplayedScrollingColumnCannotBeInvisible));
</span><span>3046</span><span> }
</span><span>3047</span><span>if</span> (<span>this</span><span>.Columns[value].Frozen)
</span><span>3048</span><span> {
</span><span>3049</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FirstDisplayedScrollingColumnCannotBeFrozen));
</span><span>3050</span><span> }
</span><span>3051</span><span>3052</span><span>if</span> (!<span>this</span><span>.IsHandleCreated)
</span><span>3053</span><span> {
</span><span>3054</span><span> CreateHandle();
</span><span>3055</span><span> }
</span><span>3056</span><span>3057</span><span>int</span> displayWidth = <span>this</span><span>.layout.Data.Width;
</span><span>3058</span><span>if</span> (displayWidth <= <span>0</span><span>)
</span><span>3059</span><span> {
</span><span>3060</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_NoRoomForDisplayedColumns));
</span><span>3061</span><span> }
</span><span>3062</span><span>3063</span><span>int</span> totalVisibleFrozenWidth = <span>this</span>.Columns.GetColumnsWidth(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>3064</span><span>if</span> (totalVisibleFrozenWidth >=<span> displayWidth)
</span><span>3065</span><span> {
</span><span>3066</span> Debug.Assert(totalVisibleFrozenWidth > <span>0</span><span>);
</span><span>3067</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FrozenColumnsPreventFirstDisplayedScrollingColumn));
</span><span>3068</span><span> }
</span><span>3069</span><span>3070</span><span>if</span> (value == <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol)
</span><span>3071</span><span> {
</span><span>3072</span><span>return</span><span>;
</span><span>3073</span><span> }
</span><span>3074</span><span>3075</span><span>if</span> (<span>this</span>.ptCurrentCell.X >= <span>0</span> &&
<span>3076</span> !CommitEdit(DataGridViewDataErrorContexts.Parsing | DataGridViewDataErrorContexts.Commit |<span> DataGridViewDataErrorContexts.Scroll,
</span><span>3077</span><span>false</span><span>/*</span><span>forCurrentCellChange</span><span>*/</span>, <span>false</span><span>/*</span><span>forCurrentRowChange</span><span>*/</span><span>))
</span><span>3078</span><span> {
</span><span>3079</span><span>//</span><span> Could not commit edited cell value - return silently
</span><span>3080</span><span>//</span><span> [....]: should we throw an error here?</span><span>3081</span><span>return</span><span>;
</span><span>3082</span><span> }
</span><span>3083</span><span>if</span><span> (IsColumnOutOfBounds(value))
</span><span>3084</span><span> {
</span><span>3085</span><span>return</span><span>;
</span><span>3086</span><span> }
</span><span>3087</span><span>bool</span> success = ScrollColumnIntoView(value, -<span>1</span>, <span>/*</span><span>committed</span><span>*/</span><span>true</span>, <span>false</span><span>/*</span><span>forCurrentCellChange</span><span>*/</span><span>);
</span><span>3088</span><span> Debug.Assert(success);
</span><span>3089</span><span>3090</span> Debug.Assert(<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol >= <span>0</span><span>);
</span><span>3091</span> Debug.Assert(<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol == value ||
<span>3092</span><span>this</span>.Columns.DisplayInOrder(<span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol, value));
</span><span>3093</span><span>int</span> maxHorizontalOffset = <span>this</span>.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) -<span> displayWidth;
</span><span>3094</span><span>while</span> (<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol != value &&
<span>3095</span><span>this</span>.HorizontalOffset <<span> maxHorizontalOffset)
</span><span>3096</span><span> {
</span><span>3097</span> ScrollColumns(<span>1</span><span>);
</span><span>3098</span><span> }
</span><span>3099</span><span> }
</span><span>3100</span><span> }
</span><span>3101</span><span>3102</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.FirstDisplayedScrollingRowIndex"]/*‘ /></span><span>3103</span><span> [
</span><span>3104</span> Browsable(<span>false</span><span>),
</span><span>3105</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3106</span><span> ]
</span><span>3107</span><span>public</span><span>int</span><span> FirstDisplayedScrollingRowIndex
</span><span>3108</span><span> {
</span><span>3109</span><span>get</span><span>3110</span><span> {
</span><span>3111</span><span>return</span><span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow;
</span><span>3112</span><span> }
</span><span>3113</span><span>set</span><span>3114</span><span> {
</span><span>3115</span><span>if</span> (value < <span>0</span> || value >= <span>this</span><span>.Rows.Count)
</span><span>3116</span><span> {
</span><span>3117</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>value</span><span>"</span><span>);
</span><span>3118</span><span> }
</span><span>3119</span><span>if</span> ((<span>this</span>.Rows.GetRowState(value) & DataGridViewElementStates.Visible) == <span>0</span><span>)
</span><span>3120</span><span> {
</span><span>3121</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FirstDisplayedScrollingRowCannotBeInvisible));
</span><span>3122</span><span> }
</span><span>3123</span><span>if</span> ((<span>this</span>.Rows.GetRowState(value) & DataGridViewElementStates.Frozen) != <span>0</span><span>)
</span><span>3124</span><span> {
</span><span>3125</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FirstDisplayedScrollingRowCannotBeFrozen));
</span><span>3126</span><span> }
</span><span>3127</span><span>3128</span><span>if</span> (!<span>this</span><span>.IsHandleCreated)
</span><span>3129</span><span> {
</span><span>3130</span><span> CreateHandle();
</span><span>3131</span><span> }
</span><span>3132</span><span>3133</span><span>int</span> displayHeight = <span>this</span><span>.layout.Data.Height;
</span><span>3134</span><span>if</span> (displayHeight <= <span>0</span><span>)
</span><span>3135</span><span> {
</span><span>3136</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_NoRoomForDisplayedRows));
</span><span>3137</span><span> }
</span><span>3138</span><span>3139</span><span>int</span> totalVisibleFrozenHeight = <span>this</span>.Rows.GetRowsHeight(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>3140</span><span>if</span> (totalVisibleFrozenHeight >=<span> displayHeight)
</span><span>3141</span><span> {
</span><span>3142</span> Debug.Assert(totalVisibleFrozenHeight > <span>0</span><span>);
</span><span>3143</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_FrozenRowsPreventFirstDisplayedScrollingRow));
</span><span>3144</span><span> }
</span><span>3145</span><span>3146</span><span>if</span> (value == <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow)
</span><span>3147</span><span> {
</span><span>3148</span><span>return</span><span>;
</span><span>3149</span><span> }
</span><span>3150</span><span>3151</span><span>if</span> (<span>this</span>.ptCurrentCell.X >= <span>0</span> &&
<span>3152</span> !CommitEdit(DataGridViewDataErrorContexts.Parsing | DataGridViewDataErrorContexts.Commit |<span> DataGridViewDataErrorContexts.Scroll,
</span><span>3153</span><span>false</span><span>/*</span><span>forCurrentCellChange</span><span>*/</span>, <span>false</span><span>/*</span><span>forCurrentRowChange</span><span>*/</span><span>))
</span><span>3154</span><span> {
</span><span>3155</span><span>//</span><span> Could not commit edited cell value - return silently
</span><span>3156</span><span>//</span><span> [....]: should we throw an error here?</span><span>3157</span><span>return</span><span>;
</span><span>3158</span><span> }
</span><span>3159</span><span>if</span><span> (IsRowOutOfBounds(value))
</span><span>3160</span><span> {
</span><span>3161</span><span>return</span><span>;
</span><span>3162</span><span> }
</span><span>3163</span><span>3164</span> Debug.Assert(<span>this</span>.displayedBandsInfo.FirstDisplayedScrollingRow >= <span>0</span><span>);
</span><span>3165</span><span>3166</span><span>if</span> (value > <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow)
</span><span>3167</span><span> {
</span><span>3168</span><span>int</span> rowsToScroll = <span>this</span>.Rows.GetRowCount(DataGridViewElementStates.Visible, <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingRow, value);
</span><span>3169</span> Debug.Assert(rowsToScroll != <span>0</span><span>);
</span><span>3170</span> ScrollRowsByCount(rowsToScroll, rowsToScroll > <span>1</span> ?<span> ScrollEventType.LargeIncrement : ScrollEventType.SmallIncrement);
</span><span>3171</span><span> }
</span><span>3172</span><span>else</span><span>3173</span><span> {
</span><span>3174</span><span>bool</span> success = ScrollRowIntoView(-<span>1</span>, value, <span>/*</span><span>committed</span><span>*/</span><span>true</span>, <span>false</span><span>/*</span><span>forCurrentCellChange</span><span>*/</span><span>);
</span><span>3175</span><span> Debug.Assert(success);
</span><span>3176</span><span> }
</span><span>3177</span><span> }
</span><span>3178</span><span> }
</span><span>3179</span><span>3180</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ForeColor"]/*‘ /></span><span>3181</span><span>///</span><span><internalonly/></span><span>3182</span><span> [
</span><span>3183</span> Browsable(<span>false</span><span>),
</span><span>3184</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>3185</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3186</span><span> ]
</span><span>3187</span><span>public</span><span>override</span><span> Color ForeColor
</span><span>3188</span><span> {
</span><span>3189</span><span>get</span><span>3190</span><span> {
</span><span>3191</span><span>return</span><span>base</span><span>.ForeColor;
</span><span>3192</span><span> }
</span><span>3193</span><span>set</span><span>3194</span><span> {
</span><span>3195</span><span>base</span>.ForeColor =<span> value;
</span><span>3196</span><span> }
</span><span>3197</span><span> }
</span><span>3198</span><span>3199</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ForeColorChanged"]/*‘ /></span><span>3200</span><span>///</span><span><internalonly/></span><span>3201</span><span> [
</span><span>3202</span> Browsable(<span>false</span><span>),
</span><span>3203</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>3204</span><span> ]
</span><span>3205</span><span>new</span><span>public</span><span>event</span><span> EventHandler ForeColorChanged
</span><span>3206</span><span> {
</span><span>3207</span><span> add
</span><span>3208</span><span> {
</span><span>3209</span><span>base</span>.ForeColorChanged +=<span> value;
</span><span>3210</span><span> }
</span><span>3211</span><span> remove
</span><span>3212</span><span> {
</span><span>3213</span><span>base</span>.ForeColorChanged -=<span> value;
</span><span>3214</span><span> }
</span><span>3215</span><span> }
</span><span>3216</span><span>3217</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Font"]/*‘ /></span><span>3218</span><span>///</span><span><internalonly/></span><span>3219</span><span> [
</span><span>3220</span> Browsable(<span>false</span><span>),
</span><span>3221</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>3222</span><span> ]
</span><span>3223</span><span>public</span><span>override</span><span> Font Font
</span><span>3224</span><span> {
</span><span>3225</span><span>get</span><span>3226</span><span> {
</span><span>3227</span><span>return</span><span>base</span><span>.Font;
</span><span>3228</span><span> }
</span><span>3229</span><span>set</span><span>3230</span><span> {
</span><span>3231</span><span>base</span>.Font =<span> value;
</span><span>3232</span><span> }
</span><span>3233</span><span> }
</span><span>3234</span><span>3235</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.FontChanged"]/*‘ /></span><span>3236</span><span>///</span><span><internalonly/></span><span>3237</span><span> [
</span><span>3238</span> Browsable(<span>false</span><span>),
</span><span>3239</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>3240</span><span> ]
</span><span>3241</span><span>new</span><span>public</span><span>event</span><span> EventHandler FontChanged
</span><span>3242</span><span> {
</span><span>3243</span><span> add
</span><span>3244</span><span> {
</span><span>3245</span><span>base</span>.FontChanged +=<span> value;
</span><span>3246</span><span> }
</span><span>3247</span><span> remove
</span><span>3248</span><span> {
</span><span>3249</span><span>base</span>.FontChanged -=<span> value;
</span><span>3250</span><span> }
</span><span>3251</span><span> }
</span><span>3252</span><span>3253</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.GridColor"]/*‘ /></span><span>3254</span><span>///</span><span><devdoc></span><span>3255</span><span>///</span><span><para></span><span>Gets or sets the grid color of the dataGridView (when Single mode is used).</span><span></para></span><span>3256</span><span>///</span><span></devdoc></span><span>3257</span><span> [
</span><span>3258</span><span> SRCategory(SR.CatAppearance),
</span><span>3259</span><span> SRDescription(SR.DataGridViewGridColorDescr)
</span><span>3260</span><span> ]
</span><span>3261</span><span>public</span><span> Color GridColor
</span><span>3262</span><span> {
</span><span>3263</span><span>get</span><span>3264</span><span> {
</span><span>3265</span><span>return</span><span>this</span><span>.gridPen.Color;
</span><span>3266</span><span> }
</span><span>3267</span><span>set</span><span>3268</span><span> {
</span><span>3269</span><span>if</span><span> (value.IsEmpty)
</span><span>3270</span><span> {
</span><span>3271</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_EmptyColor, <span>"</span><span>GridColor</span><span>"</span><span>));
</span><span>3272</span><span> }
</span><span>3273</span><span>if</span> (value.A < <span>255</span><span>)
</span><span>3274</span><span> {
</span><span>3275</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_TransparentColor, <span>"</span><span>GridColor</span><span>"</span><span>));
</span><span>3276</span><span> }
</span><span>3277</span><span>if</span> (!value.Equals(<span>this</span><span>.gridPen.Color))
</span><span>3278</span><span> {
</span><span>3279</span><span>if</span> (<span>this</span>.gridPen != <span>null</span><span>)
</span><span>3280</span><span> {
</span><span>3281</span><span>this</span><span>.gridPen.Dispose();
</span><span>3282</span><span> }
</span><span>3283</span><span>3284</span><span>this</span>.gridPen = <span>new</span><span> Pen(value);
</span><span>3285</span><span> OnGridColorChanged(EventArgs.Empty);
</span><span>3286</span><span> }
</span><span>3287</span><span> }
</span><span>3288</span><span> }
</span><span>3289</span><span>3290</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.GridColorChanged"]/*‘ /></span><span>3291</span><span> [
</span><span>3292</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>3293</span><span> SRDescription(SR.DataGridViewOnGridColorChangedDescr)
</span><span>3294</span><span> ]
</span><span>3295</span><span>public</span><span>event</span><span> EventHandler GridColorChanged
</span><span>3296</span><span> {
</span><span>3297</span><span> add
</span><span>3298</span><span> {
</span><span>3299</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWGRIDCOLORCHANGED, value);
</span><span>3300</span><span> }
</span><span>3301</span><span> remove
</span><span>3302</span><span> {
</span><span>3303</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWGRIDCOLORCHANGED, value);
</span><span>3304</span><span> }
</span><span>3305</span><span> }
</span><span>3306</span><span>3307</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ShouldSerializeGridColor"]/*‘ /></span><span>3308</span><span>private</span><span>bool</span><span> ShouldSerializeGridColor()
</span><span>3309</span><span> {
</span><span>3310</span><span>return</span> !<span>this</span><span>.GridPen.Color.Equals(DefaultGridColor);
</span><span>3311</span><span> }
</span><span>3312</span><span>3313</span><span>internal</span><span> Pen GridPen
</span><span>3314</span><span> {
</span><span>3315</span><span>get</span><span>3316</span><span> {
</span><span>3317</span><span>return</span><span>this</span><span>.gridPen;
</span><span>3318</span><span> }
</span><span>3319</span><span> }
</span><span>3320</span><span>3321</span><span>internal</span><span>int</span><span> HorizontalOffset
</span><span>3322</span><span> {
</span><span>3323</span><span>get</span><span>3324</span><span> {
</span><span>3325</span><span>return</span><span>this</span><span>.horizontalOffset;
</span><span>3326</span><span> }
</span><span>3327</span><span>set</span><span>3328</span><span> {
</span><span>3329</span><span>if</span> (value < <span>0</span><span>)
</span><span>3330</span><span> {
</span><span>3331</span> value = <span>0</span><span>;
</span><span>3332</span><span> }
</span><span>3333</span><span>int</span> widthNotVisible = <span>this</span>.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - <span>this</span><span>.layout.Data.Width;
</span><span>3334</span><span>if</span> (value > widthNotVisible && widthNotVisible > <span>0</span><span>)
</span><span>3335</span><span> {
</span><span>3336</span> value =<span> widthNotVisible;
</span><span>3337</span><span> }
</span><span>3338</span><span>if</span> (value == <span>this</span><span>.horizontalOffset)
</span><span>3339</span><span> {
</span><span>3340</span><span>return</span><span>;
</span><span>3341</span><span> }
</span><span>3342</span><span>3343</span><span> ScrollEventType scrollEventType;
</span><span>3344</span><span>int</span> oldFirstVisibleScrollingCol = <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol;
</span><span>3345</span><span>int</span> change = <span>this</span>.horizontalOffset -<span> value;
</span><span>3346</span><span>if</span> (<span>this</span><span>.horizScrollBar.Enabled)
</span><span>3347</span><span> {
</span><span>3348</span><span>this</span>.horizScrollBar.Value =<span> value;
</span><span>3349</span><span> }
</span><span>3350</span><span>this</span>.horizontalOffset =<span> value;
</span><span>3351</span><span>3352</span><span>int</span> totalVisibleFrozenWidth = <span>this</span>.Columns.GetColumnsWidth(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>3353</span><span>3354</span> Rectangle rectTmp = <span>this</span><span>.layout.Data;
</span><span>3355</span><span>if</span> (<span>this</span><span>.layout.ColumnHeadersVisible)
</span><span>3356</span><span> {
</span><span>3357</span><span>//</span><span> column headers must scroll as well</span><span>3358</span> rectTmp = Rectangle.Union(rectTmp, <span>this</span><span>.layout.ColumnHeaders);
</span><span>3359</span><span> }
</span><span>3360</span><span>else</span><span>if</span> (<span>this</span><span>.SingleVerticalBorderAdded)
</span><span>3361</span><span> {
</span><span>3362</span><span>if</span> (!<span>this</span><span>.RightToLeftInternal)
</span><span>3363</span><span> {
</span><span>3364</span> rectTmp.X--<span>;
</span><span>3365</span><span> }
</span><span>3366</span> rectTmp.Width++<span>;
</span><span>3367</span><span> }
</span><span>3368</span><span>3369</span><span>if</span> (<span>this</span>.SingleVerticalBorderAdded &&
<span>3370</span> totalVisibleFrozenWidth > <span>0</span><span>)
</span><span>3371</span><span> {
</span><span>3372</span><span>if</span> (!<span>this</span><span>.RightToLeftInternal)
</span><span>3373</span><span> {
</span><span>3374</span> rectTmp.X++<span>;
</span><span>3375</span><span> }
</span><span>3376</span> rectTmp.Width--<span>;
</span><span>3377</span><span> }
</span><span>3378</span><span>3379</span><span>if</span> (!<span>this</span><span>.RightToLeftInternal)
</span><span>3380</span><span> {
</span><span>3381</span> rectTmp.X +=<span> totalVisibleFrozenWidth;
</span><span>3382</span><span> }
</span><span>3383</span> rectTmp.Width -=<span> totalVisibleFrozenWidth;
</span><span>3384</span><span>3385</span><span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol =<span> ComputeFirstVisibleScrollingColumn();
</span><span>3386</span><span>//</span><span> update the lastTotallyDisplayedScrollingCol</span><span>3387</span><span> ComputeVisibleColumns();
</span><span>3388</span><span>3389</span><span>if</span> (<span>this</span>.editingControl != <span>null</span> &&
<span>3390</span> !<span>this</span>.Columns[<span>this</span>.ptCurrentCell.X].Frozen &&
<span>3391</span><span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol > -<span>1</span><span>)
</span><span>3392</span><span> {
</span><span>3393</span> PositionEditingControl(<span>true</span><span>/*</span><span>setLocation</span><span>*/</span>, <span>false</span><span>/*</span><span>setSize</span><span>*/</span>, <span>false</span><span>/*</span><span>setFocus</span><span>*/</span><span>);
</span><span>3394</span><span> }
</span><span>3395</span><span>3396</span><span>//</span><span> The mouse probably is not over the same cell after the scroll.</span><span>3397</span> UpdateMouseEnteredCell(<span>null</span><span>/*</span><span>HitTestInfo</span><span>*/</span>, <span>null</span><span>/*</span><span>MouseEventArgs</span><span>*/</span><span>);
</span><span>3398</span><span>3399</span><span>if</span> (oldFirstVisibleScrollingCol == <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol)
</span><span>3400</span><span> {
</span><span>3401</span> scrollEventType = change > <span>0</span> ?<span> ScrollEventType.SmallIncrement : ScrollEventType.SmallDecrement;
</span><span>3402</span><span> }
</span><span>3403</span><span>else</span><span>if</span> (<span>this</span>.Columns.DisplayInOrder(oldFirstVisibleScrollingCol, <span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol))
</span><span>3404</span><span> {
</span><span>3405</span> scrollEventType = <span>this</span>.Columns.GetColumnCount(DataGridViewElementStates.Visible, oldFirstVisibleScrollingCol, <span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol) > <span>1</span> ?<span> ScrollEventType.LargeIncrement : ScrollEventType.SmallIncrement;
</span><span>3406</span><span> }
</span><span>3407</span><span>else</span><span>3408</span><span> {
</span><span>3409</span> Debug.Assert(<span>this</span>.Columns.DisplayInOrder(<span>this</span><span>.displayedBandsInfo.FirstDisplayedScrollingCol, oldFirstVisibleScrollingCol));
</span><span>3410</span> scrollEventType = <span>this</span>.Columns.GetColumnCount(DataGridViewElementStates.Visible, <span>this</span>.displayedBandsInfo.FirstDisplayedScrollingCol, oldFirstVisibleScrollingCol) > <span>1</span> ?<span> ScrollEventType.LargeDecrement : ScrollEventType.SmallDecrement;
</span><span>3411</span><span> }
</span><span>3412</span><span>3413</span> NativeMethods.RECT[] rects =<span> CreateScrollableRegion(rectTmp);
</span><span>3414</span><span>if</span> (<span>this</span><span>.RightToLeftInternal)
</span><span>3415</span><span> {
</span><span>3416</span> change = -<span>change;
</span><span>3417</span><span> }
</span><span>3418</span><span> ScrollRectangles(rects, change);
</span><span>3419</span><span>if</span> (!<span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_stopRaisingHorizontalScroll])
</span><span>3420</span><span> {
</span><span>3421</span> OnScroll(scrollEventType, <span>this</span>.horizontalOffset + change, <span>this</span><span>.horizontalOffset, ScrollOrientation.HorizontalScroll);
</span><span>3422</span><span> }
</span><span>3423</span><span> FlushDisplayedChanged();
</span><span>3424</span><span> }
</span><span>3425</span><span> }
</span><span>3426</span><span>3427</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.HorizontalScrollBar"]/*‘ /></span><span>3428</span><span>protected</span><span> ScrollBar HorizontalScrollBar
</span><span>3429</span><span> {
</span><span>3430</span><span>get</span><span>3431</span><span> {
</span><span>3432</span><span>return</span><span>this</span><span>.horizScrollBar;
</span><span>3433</span><span> }
</span><span>3434</span><span> }
</span><span>3435</span><span>3436</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.HorizontalScrollingOffset"]/*‘ /></span><span>3437</span><span> [
</span><span>3438</span> Browsable(<span>false</span><span>),
</span><span>3439</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3440</span><span> ]
</span><span>3441</span><span>public</span><span>int</span><span> HorizontalScrollingOffset
</span><span>3442</span><span> {
</span><span>3443</span><span>get</span><span>3444</span><span> {
</span><span>3445</span><span>return</span><span>this</span><span>.horizontalOffset;
</span><span>3446</span><span> }
</span><span>3447</span><span>set</span><span>3448</span><span> {
</span><span>3449</span><span>//</span><span> int widthNotVisible = this.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - this.layout.Data.Width;</span><span>3450</span><span>if</span> (value < <span>0</span><span>)
</span><span>3451</span><span> {
</span><span>3452</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>HorizontalScrollingOffset</span><span>"</span>, SR.GetString(SR.InvalidLowBoundArgumentEx, <span>"</span><span>HorizontalScrollingOffset</span><span>"</span>, (value).ToString(CultureInfo.CurrentCulture), (<span>0</span><span>).ToString(CultureInfo.CurrentCulture)));
</span><span>3453</span><span> }
</span><span>3454</span><span>//</span><span> Intentionally ignoring the out of range situation.
</span><span>3455</span><span>//</span><span> else if (value > widthNotVisible && widthNotVisible > 0)
</span><span>3456</span><span>//</span><span>{
</span><span>3457</span><span>//</span><span> throw new ArgumentOutOfRangeException(SR.GetString(SR.DataGridView_PropertyTooLarge, "HorizontalScrollingOffset", (widthNotVisible).ToString()));
</span><span>3458</span><span>//</span><span>}</span><span>3459</span><span>else</span><span>if</span> (value > <span>0</span> && (<span>this</span>.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - <span>this</span>.layout.Data.Width) <= <span>0</span><span>)
</span><span>3460</span><span> {
</span><span>3461</span><span>//</span><span> Intentionally ignoring the case where dev tries to set value while there is no horizontal scrolling possible.
</span><span>3462</span><span>//</span><span> throw new ArgumentOutOfRangeException("HorizontalScrollingOffset", SR.GetString(SR.DataGridView_PropertyMustBeZero));</span><span>3463</span> Debug.Assert(<span>this</span>.horizontalOffset == <span>0</span><span>);
</span><span>3464</span><span>return</span><span>;
</span><span>3465</span><span> }
</span><span>3466</span><span>if</span> (value == <span>this</span><span>.horizontalOffset)
</span><span>3467</span><span> {
</span><span>3468</span><span>return</span><span>;
</span><span>3469</span><span> }
</span><span>3470</span><span>this</span>.HorizontalOffset =<span> value;
</span><span>3471</span><span> }
</span><span>3472</span><span> }
</span><span>3473</span><span>3474</span><span>private</span><span> System.Windows.Forms.Timer HorizScrollTimer
</span><span>3475</span><span> {
</span><span>3476</span><span>get</span><span>3477</span><span> {
</span><span>3478</span><span>if</span> (<span>this</span>.horizScrollTimer == <span>null</span><span>)
</span><span>3479</span><span> {
</span><span>3480</span><span>this</span>.horizScrollTimer = <span>new</span><span> System.Windows.Forms.Timer();
</span><span>3481</span><span>this</span>.horizScrollTimer.Tick += <span>new</span><span> System.EventHandler(HorizScrollTimer_Tick);
</span><span>3482</span><span> }
</span><span>3483</span><span>return</span><span>this</span><span>.horizScrollTimer;
</span><span>3484</span><span> }
</span><span>3485</span><span> }
</span><span>3486</span><span>3487</span><span>private</span><span>bool</span><span> InAdjustFillingColumns
</span><span>3488</span><span> {
</span><span>3489</span><span>get</span><span>3490</span><span> {
</span><span>3491</span><span>return</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inAdjustFillingColumn] || <span>this</span><span>.dataGridViewOper[DATAGRIDVIEWOPER_inAdjustFillingColumns];
</span><span>3492</span><span> }
</span><span>3493</span><span> }
</span><span>3494</span><span>3495</span><span>internal</span><span>bool</span><span> InBeginEdit
</span><span>3496</span><span> {
</span><span>3497</span><span>get</span><span>3498</span><span> {
</span><span>3499</span><span>return</span><span>this</span><span>.dataGridViewOper[DATAGRIDVIEWOPER_inBeginEdit];
</span><span>3500</span><span> }
</span><span>3501</span><span> }
</span><span>3502</span><span>3503</span><span>internal</span><span>bool</span><span> InDisplayIndexAdjustments
</span><span>3504</span><span> {
</span><span>3505</span><span>get</span><span>3506</span><span> {
</span><span>3507</span><span>return</span><span>this</span><span>.dataGridViewOper[DATAGRIDVIEWOPER_inDisplayIndexAdjustments];
</span><span>3508</span><span> }
</span><span>3509</span><span>set</span><span>3510</span><span> {
</span><span>3511</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inDisplayIndexAdjustments] =<span> value;
</span><span>3512</span><span> }
</span><span>3513</span><span> }
</span><span>3514</span><span>3515</span><span>internal</span><span>bool</span><span> InEndEdit
</span><span>3516</span><span> {
</span><span>3517</span><span>get</span><span>3518</span><span> {
</span><span>3519</span><span>return</span><span>this</span><span>.dataGridViewOper[DATAGRIDVIEWOPER_inEndEdit];
</span><span>3520</span><span> }
</span><span>3521</span><span> }
</span><span>3522</span><span>3523</span><span>private</span><span> DataGridViewCellStyle InheritedEditingCellStyle
</span><span>3524</span><span> {
</span><span>3525</span><span>get</span><span>3526</span><span> {
</span><span>3527</span><span>if</span> (<span>this</span>.ptCurrentCell.X == -<span>1</span><span>)
</span><span>3528</span><span> {
</span><span>3529</span><span>return</span><span>null</span><span>;
</span><span>3530</span><span> }
</span><span>3531</span><span>3532</span><span>return</span><span>this</span>.CurrentCellInternal.GetInheritedStyleInternal(<span>this</span><span>.ptCurrentCell.Y);
</span><span>3533</span><span> }
</span><span>3534</span><span> }
</span><span>3535</span><span>3536</span><span>internal</span><span>bool</span><span> InInitialization
</span><span>3537</span><span> {
</span><span>3538</span><span>get</span><span>3539</span><span> {
</span><span>3540</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_initializing];
</span><span>3541</span><span> }
</span><span>3542</span><span> }
</span><span>3543</span><span>3544</span><span>internal</span><span>bool</span><span> InSortOperation
</span><span>3545</span><span> {
</span><span>3546</span><span>get</span><span>3547</span><span> {
</span><span>3548</span><span>return</span><span>this</span><span>.dataGridViewOper[DATAGRIDVIEWOPER_inSort];
</span><span>3549</span><span> }
</span><span>3550</span><span> }
</span><span>3551</span><span>3552</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.IsCurrentCellDirty"]/*‘ /></span><span>3553</span> [Browsable(<span>false</span><span>)]
</span><span>3554</span><span>public</span><span>bool</span><span> IsCurrentCellDirty
</span><span>3555</span><span> {
</span><span>3556</span><span>get</span><span>3557</span><span> {
</span><span>3558</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedCellChanged];
</span><span>3559</span><span> }
</span><span>3560</span><span> }
</span><span>3561</span><span>3562</span><span>private</span><span>bool</span><span> IsCurrentCellDirtyInternal
</span><span>3563</span><span> {
</span><span>3564</span><span>set</span><span>3565</span><span> {
</span><span>3566</span><span>if</span> (value != <span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedCellChanged])
</span><span>3567</span><span> {
</span><span>3568</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedCellChanged] =<span> value;
</span><span>3569</span><span> OnCurrentCellDirtyStateChanged(EventArgs.Empty);
</span><span>3570</span><span> }
</span><span>3571</span><span> }
</span><span>3572</span><span> }
</span><span>3573</span><span>3574</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.IsCurrentCellInEditMode"]/*‘ /></span><span>3575</span> [Browsable(<span>false</span><span>)]
</span><span>3576</span><span>public</span><span>bool</span><span> IsCurrentCellInEditMode
</span><span>3577</span><span> {
</span><span>3578</span><span>get</span><span>3579</span><span> {
</span><span>3580</span><span>return</span><span>this</span>.editingControl != <span>null</span> || <span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_currentCellInEditMode];
</span><span>3581</span><span> }
</span><span>3582</span><span> }
</span><span>3583</span><span>3584</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.IsCurrentRowDirty"]/*‘ /></span><span>3585</span><span>//</span><span> Only used in bound scenarios, when binding to a IEditableObject</span><span>3586</span> [Browsable(<span>false</span><span>)]
</span><span>3587</span><span>public</span><span>bool</span><span> IsCurrentRowDirty
</span><span>3588</span><span> {
</span><span>3589</span><span>get</span><span>3590</span><span> {
</span><span>3591</span><span>if</span> (!<span>this</span><span>.VirtualMode)
</span><span>3592</span><span> {
</span><span>3593</span><span>return</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedRowChanged] || <span>this</span><span>.IsCurrentCellDirty;
</span><span>3594</span><span> }
</span><span>3595</span><span>else</span><span>3596</span><span> {
</span><span>3597</span> QuestionEventArgs qe = <span>new</span> QuestionEventArgs(<span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedRowChanged] || <span>this</span><span>.IsCurrentCellDirty);
</span><span>3598</span><span> OnRowDirtyStateNeeded(qe);
</span><span>3599</span><span>return</span><span> qe.Response;
</span><span>3600</span><span> }
</span><span>3601</span><span> }
</span><span>3602</span><span> }
</span><span>3603</span><span>3604</span><span>internal</span><span>bool</span><span> IsCurrentRowDirtyInternal
</span><span>3605</span><span> {
</span><span>3606</span><span>set</span><span>3607</span><span> {
</span><span>3608</span><span>if</span> (value != <span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedRowChanged])
</span><span>3609</span><span> {
</span><span>3610</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_editedRowChanged] =<span> value;
</span><span>3611</span><span>if</span> (<span>this</span>.RowHeadersVisible && <span>this</span>.ShowEditingIcon && <span>this</span>.ptCurrentCell.Y >= <span>0</span><span>)
</span><span>3612</span><span> {
</span><span>3613</span><span>//</span><span> Force the pencil to appear in the row header</span><span>3614</span> InvalidateCellPrivate(-<span>1</span>, <span>this</span><span>.ptCurrentCell.Y);
</span><span>3615</span><span> }
</span><span>3616</span><span> }
</span><span>3617</span><span> }
</span><span>3618</span><span> }
</span><span>3619</span><span>3620</span><span>private</span><span>bool</span><span> IsEscapeKeyEffective
</span><span>3621</span><span> {
</span><span>3622</span><span>get</span><span>3623</span><span> {
</span><span>3624</span><span>return</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_trackColResize] ||
<span>3625</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_trackRowResize] ||
<span>3626</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_trackColHeadersResize] ||
<span>3627</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_trackRowHeadersResize] ||
<span>3628</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_trackColRelocation] ||
<span>3629</span><span>this</span>.IsCurrentCellDirty ||
<span>3630</span> ((<span>this</span>.VirtualMode || <span>this</span>.DataSource != <span>null</span>) && <span>this</span>.IsCurrentRowDirty) ||
<span>3631</span> (<span>this</span>.EditMode != DataGridViewEditMode.EditOnEnter && <span>this</span>.editingControl != <span>null</span> ||
<span>3632</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_newRowEdited]);
</span><span>3633</span><span> }
</span><span>3634</span><span> }
</span><span>3635</span><span>3636</span><span>private</span><span>bool</span><span> IsMinimized
</span><span>3637</span><span> {
</span><span>3638</span><span>get</span><span>3639</span><span> {
</span><span>3640</span> Form parentForm = <span>this</span>.TopLevelControlInternal <span>as</span><span> Form;
</span><span>3641</span><span>return</span> parentForm != <span>null</span> && parentForm.WindowState ==<span> FormWindowState.Minimized;
</span><span>3642</span><span> }
</span><span>3643</span><span> }
</span><span>3644</span><span>3645</span><span>internal</span><span>bool</span><span> IsRestricted
</span><span>3646</span><span> {
</span><span>3647</span><span>get</span><span>3648</span><span> {
</span><span>3649</span><span>if</span> (!<span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestrictedChecked])
</span><span>3650</span><span> {
</span><span>3651</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestricted] = <span>false</span><span>;
</span><span>3652</span><span>try</span><span>3653</span><span> {
</span><span>3654</span><span> IntSecurity.AllWindows.Demand();
</span><span>3655</span><span> }
</span><span>3656</span><span>catch</span><span> (SecurityException)
</span><span>3657</span><span> {
</span><span>3658</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestricted] = <span>true</span><span>;
</span><span>3659</span><span> }
</span><span>3660</span><span>catch</span><span>3661</span><span> {
</span><span>3662</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestricted] = <span>true</span>; <span>//</span><span> To be on the safe side</span><span>3663</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestrictedChecked] = <span>true</span><span>;
</span><span>3664</span><span>throw</span><span>;
</span><span>3665</span><span> }
</span><span>3666</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestrictedChecked] = <span>true</span><span>;
</span><span>3667</span><span> }
</span><span>3668</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_isRestricted];
</span><span>3669</span><span> }
</span><span>3670</span><span> }
</span><span>3671</span><span>3672</span><span>private</span><span>bool</span> IsSharedCellReadOnly(DataGridViewCell dataGridViewCell, <span>int</span><span> rowIndex)
</span><span>3673</span><span> {
</span><span>3674</span> Debug.Assert(dataGridViewCell != <span>null</span><span>);
</span><span>3675</span> Debug.Assert(rowIndex >= <span>0</span><span>);
</span><span>3676</span> DataGridViewElementStates rowState = <span>this</span><span>.Rows.GetRowState(rowIndex);
</span><span>3677</span><span>return</span><span>this</span>.ReadOnly ||
<span>3678</span> (rowState & DataGridViewElementStates.ReadOnly) != <span>0</span> ||
<span>3679</span> (dataGridViewCell.OwningColumn != <span>null</span> && dataGridViewCell.OwningColumn.ReadOnly) ||
<span>3680</span><span> dataGridViewCell.StateIncludes(DataGridViewElementStates.ReadOnly);
</span><span>3681</span><span> }
</span><span>3682</span><span>3683</span><span>internal</span><span>bool</span> IsSharedCellSelected(DataGridViewCell dataGridViewCell, <span>int</span><span> rowIndex)
</span><span>3684</span><span> {
</span><span>3685</span> Debug.Assert(dataGridViewCell != <span>null</span><span>);
</span><span>3686</span> Debug.Assert(rowIndex >= <span>0</span><span>);
</span><span>3687</span> DataGridViewElementStates rowState = <span>this</span><span>.Rows.GetRowState(rowIndex);
</span><span>3688</span><span>return</span> (rowState & DataGridViewElementStates.Selected) != <span>0</span> ||
<span>3689</span> (dataGridViewCell.OwningColumn != <span>null</span> && dataGridViewCell.OwningColumn.Selected) ||
<span>3690</span><span> dataGridViewCell.StateIncludes(DataGridViewElementStates.Selected);
</span><span>3691</span><span> }
</span><span>3692</span><span>3693</span><span>internal</span><span>bool</span> IsSharedCellVisible(DataGridViewCell dataGridViewCell, <span>int</span><span> rowIndex)
</span><span>3694</span><span> {
</span><span>3695</span> Debug.Assert(dataGridViewCell != <span>null</span><span>);
</span><span>3696</span> Debug.Assert(rowIndex >= <span>0</span><span>);
</span><span>3697</span> DataGridViewElementStates rowState = <span>this</span><span>.Rows.GetRowState(rowIndex);
</span><span>3698</span><span>return</span> (rowState & DataGridViewElementStates.Visible) != <span>0</span> &&
<span>3699</span> (dataGridViewCell.OwningColumn != <span>null</span> &&<span> dataGridViewCell.OwningColumn.Visible);
</span><span>3700</span><span> }
</span><span>3701</span><span>3702</span><span>internal</span><span> LayoutData LayoutInfo
</span><span>3703</span><span> {
</span><span>3704</span><span>get</span><span>3705</span><span> {
</span><span>3706</span><span>if</span> (<span>this</span>.layout.dirty && <span>this</span><span>.IsHandleCreated)
</span><span>3707</span><span> {
</span><span>3708</span> PerformLayoutPrivate(<span>false</span><span>/*</span><span>useRowShortcut</span><span>*/</span>, <span>true</span><span>/*</span><span>computeVisibleRows</span><span>*/</span>, <span>false</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span>, <span>false</span><span>/*</span><span>repositionEditingControl</span><span>*/</span><span>);
</span><span>3709</span><span> }
</span><span>3710</span><span>return</span><span>this</span><span>.layout;
</span><span>3711</span><span> }
</span><span>3712</span><span> }
</span><span>3713</span><span>3714</span><span>internal</span><span> Point MouseDownCellAddress
</span><span>3715</span><span> {
</span><span>3716</span><span>get</span><span>3717</span><span> {
</span><span>3718</span><span>return</span><span>this</span><span>.ptMouseDownCell;
</span><span>3719</span><span> }
</span><span>3720</span><span> }
</span><span>3721</span><span>3722</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.MultiSelect"]/*‘ /></span><span>3723</span><span> [
</span><span>3724</span><span> SRCategory(SR.CatBehavior),
</span><span>3725</span> DefaultValue(<span>true</span><span>),
</span><span>3726</span><span> SRDescription(SR.DataGridView_MultiSelectDescr)
</span><span>3727</span><span> ]
</span><span>3728</span><span>public</span><span>bool</span><span> MultiSelect
</span><span>3729</span><span> {
</span><span>3730</span><span>get</span><span>3731</span><span> {
</span><span>3732</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_multiSelect];
</span><span>3733</span><span> }
</span><span>3734</span><span>set</span><span>3735</span><span> {
</span><span>3736</span><span>if</span> (<span>this</span>.MultiSelect !=<span> value)
</span><span>3737</span><span> {
</span><span>3738</span><span> ClearSelection();
</span><span>3739</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_multiSelect] =<span> value;
</span><span>3740</span><span> OnMultiSelectChanged(EventArgs.Empty);
</span><span>3741</span><span> }
</span><span>3742</span><span> }
</span><span>3743</span><span> }
</span><span>3744</span><span>3745</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.MultiSelectChanged"]/*‘ /></span><span>3746</span><span> [
</span><span>3747</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>3748</span><span> SRDescription(SR.DataGridViewOnMultiSelectChangedDescr)
</span><span>3749</span><span> ]
</span><span>3750</span><span>public</span><span>event</span><span> EventHandler MultiSelectChanged
</span><span>3751</span><span> {
</span><span>3752</span><span> add
</span><span>3753</span><span> {
</span><span>3754</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWMULTISELECTCHANGED, value);
</span><span>3755</span><span> }
</span><span>3756</span><span> remove
</span><span>3757</span><span> {
</span><span>3758</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWMULTISELECTCHANGED, value);
</span><span>3759</span><span> }
</span><span>3760</span><span> }
</span><span>3761</span><span>3762</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.NewRowIndex"]/*‘ /></span><span>3763</span><span> [
</span><span>3764</span> Browsable(<span>false</span><span>),
</span><span>3765</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3766</span><span> ]
</span><span>3767</span><span>public</span><span>int</span><span> NewRowIndex
</span><span>3768</span><span> {
</span><span>3769</span><span>get</span><span>3770</span><span> {
</span><span>3771</span><span>return</span><span>this</span><span>.newRowIndex;
</span><span>3772</span><span> }
</span><span>3773</span><span> }
</span><span>3774</span><span>3775</span><span>internal</span><span>bool</span><span> NoDimensionChangeAllowed
</span><span>3776</span><span> {
</span><span>3777</span><span>get</span><span>3778</span><span> {
</span><span>3779</span><span>return</span><span>this</span>.noDimensionChangeCount > <span>0</span><span>;
</span><span>3780</span><span> }
</span><span>3781</span><span> }
</span><span>3782</span><span>3783</span><span>private</span><span>int</span><span> NoSelectionChangeCount
</span><span>3784</span><span> {
</span><span>3785</span><span>get</span><span>3786</span><span> {
</span><span>3787</span><span>return</span><span>this</span><span>.noSelectionChangeCount;
</span><span>3788</span><span> }
</span><span>3789</span><span>set</span><span>3790</span><span> {
</span><span>3791</span> Debug.Assert(value >= <span>0</span><span>);
</span><span>3792</span><span>this</span>.noSelectionChangeCount =<span> value;
</span><span>3793</span><span>if</span> (value == <span>0</span><span>)
</span><span>3794</span><span> {
</span><span>3795</span><span> FlushSelectionChanged();
</span><span>3796</span><span> }
</span><span>3797</span><span> }
</span><span>3798</span><span> }
</span><span>3799</span><span>3800</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Padding"]/*‘ /></span><span>3801</span><span> [
</span><span>3802</span> Browsable(<span>false</span><span>),
</span><span>3803</span><span> EditorBrowsable(EditorBrowsableState.Never),
</span><span>3804</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3805</span><span> ]
</span><span>3806</span><span>public</span><span>new</span><span> Padding Padding
</span><span>3807</span><span> {
</span><span>3808</span><span>get</span><span>3809</span><span> {
</span><span>3810</span><span>return</span><span>base</span><span>.Padding;
</span><span>3811</span><span> }
</span><span>3812</span><span>set</span><span>3813</span><span> {
</span><span>3814</span><span>base</span>.Padding =<span> value;
</span><span>3815</span><span> }
</span><span>3816</span><span> }
</span><span>3817</span><span>3818</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.PaddingChanged"]/*‘ /></span><span>3819</span><span> [
</span><span>3820</span> Browsable(<span>false</span><span>),
</span><span>3821</span><span> EditorBrowsable(EditorBrowsableState.Never),
</span><span>3822</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>3823</span><span> ]
</span><span>3824</span><span>public</span><span>new</span><span>event</span><span> EventHandler PaddingChanged
</span><span>3825</span><span> {
</span><span>3826</span><span> add
</span><span>3827</span><span> {
</span><span>3828</span><span>base</span>.PaddingChanged +=<span> value;
</span><span>3829</span><span> }
</span><span>3830</span><span> remove
</span><span>3831</span><span> {
</span><span>3832</span><span>base</span>.PaddingChanged -=<span> value;
</span><span>3833</span><span> }
</span><span>3834</span><span> }
</span><span>3835</span><span>3836</span><span>internal</span><span> DataGridViewCellStyle PlaceholderCellStyle
</span><span>3837</span><span> {
</span><span>3838</span><span>get</span><span>3839</span><span> {
</span><span>3840</span><span>if</span> (<span>this</span>.placeholderCellStyle == <span>null</span><span>)
</span><span>3841</span><span> {
</span><span>3842</span><span>this</span>.placeholderCellStyle = <span>new</span><span> DataGridViewCellStyle();
</span><span>3843</span><span> }
</span><span>3844</span><span>return</span><span>this</span><span>.placeholderCellStyle;
</span><span>3845</span><span> }
</span><span>3846</span><span> }
</span><span>3847</span><span>3848</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ReadOnly"]/*‘ /></span><span>3849</span><span> [
</span><span>3850</span> Browsable(<span>true</span><span>),
</span><span>3851</span> DefaultValue(<span>false</span><span>),
</span><span>3852</span><span> SRCategory(SR.CatBehavior),
</span><span>3853</span><span> SRDescription(SR.DataGridView_ReadOnlyDescr)
</span><span>3854</span><span> ]
</span><span>3855</span><span>public</span><span>bool</span><span> ReadOnly
</span><span>3856</span><span> {
</span><span>3857</span><span>get</span><span>3858</span><span> {
</span><span>3859</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_readOnly];
</span><span>3860</span><span> }
</span><span>3861</span><span>set</span><span>3862</span><span> {
</span><span>3863</span><span>if</span> (value != <span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_readOnly])
</span><span>3864</span><span> {
</span><span>3865</span><span>if</span> (value &&
<span>3866</span><span>this</span>.ptCurrentCell.X != -<span>1</span> &&
<span>3867</span><span>this</span><span>.IsCurrentCellInEditMode)
</span><span>3868</span><span> {
</span><span>3869</span><span>//</span><span> Current cell becomes read-only. Exit editing mode.</span><span>3870</span><span>if</span> (!EndEdit(DataGridViewDataErrorContexts.Parsing |<span> DataGridViewDataErrorContexts.Commit,
</span><span>3871</span> DataGridViewValidateCellInternal.Always <span>/*</span><span>validateCell</span><span>*/</span><span>,
</span><span>3872</span><span>false</span><span>/*</span><span>fireCellLeave</span><span>*/</span><span>,
</span><span>3873</span><span>false</span><span>/*</span><span>fireCellEnter</span><span>*/</span><span>,
</span><span>3874</span><span>false</span><span>/*</span><span>fireRowLeave</span><span>*/</span><span>,
</span><span>3875</span><span>false</span><span>/*</span><span>fireRowEnter</span><span>*/</span><span>,
</span><span>3876</span><span>false</span><span>/*</span><span>fireLeave</span><span>*/</span><span>,
</span><span>3877</span><span>true</span><span>/*</span><span>keepFocus</span><span>*/</span><span>,
</span><span>3878</span><span>false</span><span>/*</span><span>resetCurrentCell</span><span>*/</span><span>,
</span><span>3879</span><span>false</span><span>/*</span><span>resetAnchorCell</span><span>*/</span><span>))
</span><span>3880</span><span> {
</span><span>3881</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CommitFailedCannotCompleteOperation));
</span><span>3882</span><span> }
</span><span>3883</span><span> }
</span><span>3884</span><span>3885</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_readOnly] =<span> value;
</span><span>3886</span><span>3887</span><span>if</span><span> (value)
</span><span>3888</span><span> {
</span><span>3889</span><span>try</span><span>3890</span><span> {
</span><span>3891</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inReadOnlyChange] = <span>true</span><span>;
</span><span>3892</span><span>for</span> (<span>int</span> columnIndex = <span>0</span>; columnIndex < <span>this</span>.Columns.Count; columnIndex++<span>)
</span><span>3893</span><span> {
</span><span>3894</span> SetReadOnlyColumnCore(columnIndex, <span>false</span><span>);
</span><span>3895</span><span> }
</span><span>3896</span><span>int</span> rowCount = <span>this</span><span>.Rows.Count;
</span><span>3897</span><span>for</span> (<span>int</span> rowIndex = <span>0</span>; rowIndex < rowCount; rowIndex++<span>)
</span><span>3898</span><span> {
</span><span>3899</span> SetReadOnlyRowCore(rowIndex, <span>false</span><span>);
</span><span>3900</span><span> }
</span><span>3901</span><span> }
</span><span>3902</span><span>finally</span><span>3903</span><span> {
</span><span>3904</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inReadOnlyChange] = <span>false</span><span>;
</span><span>3905</span><span> }
</span><span>3906</span><span> }
</span><span>3907</span><span>#if</span> DEBUG
<span>3908</span><span>else</span><span>3909</span><span> {
</span><span>3910</span> Debug.Assert(<span>this</span>.individualReadOnlyCells.Count == <span>0</span><span>);
</span><span>3911</span><span>for</span> (<span>int</span> columnIndex = <span>0</span>; columnIndex < <span>this</span>.Columns.Count; columnIndex++<span>)
</span><span>3912</span><span> {
</span><span>3913</span> Debug.Assert(<span>this</span>.Columns[columnIndex].ReadOnly == <span>false</span><span>);
</span><span>3914</span><span> }
</span><span>3915</span><span>int</span> rowCount = <span>this</span><span>.Rows.Count;
</span><span>3916</span><span>for</span> (<span>int</span> rowIndex = <span>0</span>; rowIndex < rowCount; rowIndex++<span>)
</span><span>3917</span><span> {
</span><span>3918</span> Debug.Assert((<span>this</span>.Rows.GetRowState(rowIndex) & DataGridViewElementStates.ReadOnly) == <span>0</span><span>);
</span><span>3919</span><span> }
</span><span>3920</span><span> }
</span><span>3921</span><span>#endif</span><span>3922</span><span> OnReadOnlyChanged(EventArgs.Empty);
</span><span>3923</span><span> }
</span><span>3924</span><span> }
</span><span>3925</span><span> }
</span><span>3926</span><span>3927</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ReadOnlyChanged"]/*‘ /></span><span>3928</span><span> [
</span><span>3929</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>3930</span><span> SRDescription(SR.DataGridViewOnReadOnlyChangedDescr)
</span><span>3931</span><span> ]
</span><span>3932</span><span>public</span><span>event</span><span> EventHandler ReadOnlyChanged
</span><span>3933</span><span> {
</span><span>3934</span><span> add
</span><span>3935</span><span> {
</span><span>3936</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWREADONLYCHANGED, value);
</span><span>3937</span><span> }
</span><span>3938</span><span> remove
</span><span>3939</span><span> {
</span><span>3940</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWREADONLYCHANGED, value);
</span><span>3941</span><span> }
</span><span>3942</span><span> }
</span><span>3943</span><span>3944</span><span>private</span><span>void</span><span> ResetCurrentCell()
</span><span>3945</span><span> {
</span><span>3946</span><span>if</span> (<span>this</span>.ptCurrentCell.X != -<span>1</span> &&
<span>3947</span> !SetCurrentCellAddressCore(-<span>1</span>, -<span>1</span>, <span>true</span><span>/*</span><span>setAnchorCellAddress</span><span>*/</span>, <span>true</span><span>/*</span><span>validateCurrentCell</span><span>*/</span>, <span>false</span><span>/*</span><span>throughMouseClick</span><span>*/</span><span>))
</span><span>3948</span><span> {
</span><span>3949</span><span>//</span><span> Edited value couldn‘t be committed or aborted</span><span>3950</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CellChangeCannotBeCommittedOrAborted));
</span><span>3951</span><span> }
</span><span>3952</span><span> }
</span><span>3953</span><span>3954</span><span>internal</span><span>bool</span><span> ResizingOperationAboutToStart
</span><span>3955</span><span> {
</span><span>3956</span><span>get</span><span>3957</span><span> {
</span><span>3958</span><span>return</span><span>this</span><span>.dataGridViewOper[DATAGRIDVIEWOPER_resizingOperationAboutToStart];
</span><span>3959</span><span> }
</span><span>3960</span><span> }
</span><span>3961</span><span>3962</span><span>internal</span><span>bool</span><span> RightToLeftInternal
</span><span>3963</span><span> {
</span><span>3964</span><span>get</span><span>3965</span><span> {
</span><span>3966</span><span>if</span> (<span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_rightToLeftValid])
</span><span>3967</span><span> {
</span><span>3968</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_rightToLeftMode];
</span><span>3969</span><span> }
</span><span>3970</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_rightToLeftMode] = (<span>this</span>.RightToLeft ==<span> RightToLeft.Yes);
</span><span>3971</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_rightToLeftValid] = <span>true</span><span>;
</span><span>3972</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_rightToLeftMode];
</span><span>3973</span><span> }
</span><span>3974</span><span> }
</span><span>3975</span><span>3976</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowCount"]/*‘ /></span><span>3977</span><span> [
</span><span>3978</span> Browsable(<span>false</span><span>),
</span><span>3979</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
</span><span>3980</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>3981</span> DefaultValue(<span>0</span><span>)
</span><span>3982</span><span> ]
</span><span>3983</span><span>public</span><span>int</span><span> RowCount
</span><span>3984</span><span> {
</span><span>3985</span><span>get</span><span>3986</span><span> {
</span><span>3987</span><span>return</span><span>this</span><span>.Rows.Count;
</span><span>3988</span><span> }
</span><span>3989</span><span>set</span><span>3990</span><span> {
</span><span>3991</span><span>if</span> (<span>this</span><span>.AllowUserToAddRowsInternal)
</span><span>3992</span><span> {
</span><span>3993</span><span>if</span> (value < <span>1</span><span>)
</span><span>3994</span><span> {
</span><span>3995</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>RowCount</span><span>"</span>, SR.GetString(SR.InvalidLowBoundArgumentEx, <span>"</span><span>RowCount</span><span>"</span>, value.ToString(CultureInfo.CurrentCulture), (<span>1</span><span>).ToString(CultureInfo.CurrentCulture)));
</span><span>3996</span><span> }
</span><span>3997</span><span> }
</span><span>3998</span><span>else</span><span>3999</span><span> {
</span><span>4000</span><span>if</span> (value < <span>0</span><span>)
</span><span>4001</span><span> {
</span><span>4002</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>RowCount</span><span>"</span>, SR.GetString(SR.InvalidLowBoundArgumentEx, <span>"</span><span>RowCount</span><span>"</span>, value.ToString(CultureInfo.CurrentCulture), (<span>0</span><span>).ToString(CultureInfo.CurrentCulture)));
</span><span>4003</span><span> }
</span><span>4004</span><span> }
</span><span>4005</span><span>if</span> (<span>this</span>.DataSource != <span>null</span><span>)
</span><span>4006</span><span> {
</span><span>4007</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CannotSetRowCountOnDataBoundDataGridView));
</span><span>4008</span><span> }
</span><span>4009</span><span>if</span> (value != <span>this</span><span>.Rows.Count)
</span><span>4010</span><span> {
</span><span>4011</span><span>if</span> (value == <span>0</span><span>)
</span><span>4012</span><span> {
</span><span>4013</span><span>//</span><span> Total removal of the rows.</span><span>4014</span><span>this</span><span>.Rows.Clear();
</span><span>4015</span><span> }
</span><span>4016</span><span>else</span><span>if</span> (value < <span>this</span><span>.Rows.Count)
</span><span>4017</span><span> {
</span><span>4018</span><span>//</span><span> Some rows need to be removed, from the tail of the rows collection</span><span>4019</span><span>while</span> (value < <span>this</span><span>.Rows.Count)
</span><span>4020</span><span> {
</span><span>4021</span><span>int</span> currentRowCount = <span>this</span><span>.Rows.Count;
</span><span>4022</span><span>this</span>.Rows.RemoveAt(currentRowCount - (<span>this</span>.AllowUserToAddRowsInternal ? <span>2</span> : <span>1</span><span>));
</span><span>4023</span><span>if</span> (<span>this</span>.Rows.Count >=<span> currentRowCount)
</span><span>4024</span><span> {
</span><span>4025</span><span>//</span><span> Row removal failed. We stop the loop.</span><span>4026</span><span>break</span><span>;
</span><span>4027</span><span> }
</span><span>4028</span><span> }
</span><span>4029</span><span> }
</span><span>4030</span><span>else</span><span>4031</span><span> {
</span><span>4032</span><span>//</span><span> Some rows need to be appened.</span><span>4033</span><span>if</span> (<span>this</span>.Columns.Count == <span>0</span><span>)
</span><span>4034</span><span> {
</span><span>4035</span><span>//</span><span> There are no columns yet, we simply create a single DataGridViewTextBoxColumn.</span><span>4036</span> DataGridViewTextBoxColumn dataGridViewTextBoxColumn = <span>new</span><span> DataGridViewTextBoxColumn();
</span><span>4037</span><span>this</span><span>.Columns.Add(dataGridViewTextBoxColumn);
</span><span>4038</span><span> }
</span><span>4039</span><span>int</span> rowsToAdd = value - <span>this</span><span>.Rows.Count;
</span><span>4040</span><span>if</span> (rowsToAdd > <span>0</span><span>)
</span><span>4041</span><span> {
</span><span>4042</span><span>this</span><span>.Rows.Add(rowsToAdd);
</span><span>4043</span><span> }
</span><span>4044</span><span> }
</span><span>4045</span><span> }
</span><span>4046</span><span> }
</span><span>4047</span><span> }
</span><span>4048</span><span>4049</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersBorderStyle"]/*‘ /></span><span>4050</span><span> [
</span><span>4051</span><span> SRCategory(SR.CatAppearance),
</span><span>4052</span><span> SRDescription(SR.DataGridView_RowHeadersBorderStyleDescr),
</span><span>4053</span> Browsable(<span>true</span><span>),
</span><span>4054</span><span> DefaultValue(DataGridViewHeaderBorderStyle.Raised)
</span><span>4055</span><span> ]
</span><span>4056</span><span>public</span><span> DataGridViewHeaderBorderStyle RowHeadersBorderStyle
</span><span>4057</span><span> {
</span><span>4058</span><span>get</span><span>4059</span><span> {
</span><span>4060</span><span>switch</span> (<span>this</span><span>.advancedRowHeadersBorderStyle.All)
</span><span>4061</span><span> {
</span><span>4062</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.NotSet:
</span><span>4063</span><span>return</span><span> DataGridViewHeaderBorderStyle.Custom;
</span><span>4064</span><span>4065</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.None:
</span><span>4066</span><span>return</span><span> DataGridViewHeaderBorderStyle.None;
</span><span>4067</span><span>4068</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.Single:
</span><span>4069</span><span>return</span><span> DataGridViewHeaderBorderStyle.Single;
</span><span>4070</span><span>4071</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.InsetDouble:
</span><span>4072</span><span>return</span><span> DataGridViewHeaderBorderStyle.Sunken;
</span><span>4073</span><span>4074</span><span>case</span><span> DataGridViewAdvancedCellBorderStyle.OutsetPartial:
</span><span>4075</span><span>return</span><span> DataGridViewHeaderBorderStyle.Raised;
</span><span>4076</span><span>4077</span><span>default</span><span>:
</span><span>4078</span><span>return</span><span> DataGridViewHeaderBorderStyle.Custom;
</span><span>4079</span><span> }
</span><span>4080</span><span> }
</span><span>4081</span><span>set</span><span>4082</span><span> {
</span><span>4083</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x4</span><span>4084</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewHeaderBorderStyle.Custom, (<span>int</span><span>)DataGridViewHeaderBorderStyle.None))
</span><span>4085</span><span> {
</span><span>4086</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewHeaderBorderStyle));
</span><span>4087</span><span> }
</span><span>4088</span><span>4089</span><span>if</span> (value != <span>this</span><span>.RowHeadersBorderStyle)
</span><span>4090</span><span> {
</span><span>4091</span><span>if</span> (value ==<span> DataGridViewHeaderBorderStyle.Custom)
</span><span>4092</span><span> {
</span><span>4093</span><span>throw</span><span>new</span> ArgumentException(SR.GetString(SR.DataGridView_CustomCellBorderStyleInvalid, <span>"</span><span>RowHeadersBorderStyle</span><span>"</span><span>));
</span><span>4094</span><span> }
</span><span>4095</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inBorderStyleChange] = <span>true</span><span>;
</span><span>4096</span><span>try</span><span>4097</span><span> {
</span><span>4098</span><span>switch</span><span> (value)
</span><span>4099</span><span> {
</span><span>4100</span><span>case</span><span> DataGridViewHeaderBorderStyle.Single:
</span><span>4101</span><span>this</span>.advancedRowHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.Single;
</span><span>4102</span><span>break</span><span>;
</span><span>4103</span><span>4104</span><span>case</span><span> DataGridViewHeaderBorderStyle.Raised:
</span><span>4105</span><span>this</span>.advancedRowHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.OutsetPartial;
</span><span>4106</span><span>break</span><span>;
</span><span>4107</span><span>4108</span><span>case</span><span> DataGridViewHeaderBorderStyle.Sunken:
</span><span>4109</span><span>this</span>.advancedRowHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.InsetDouble;
</span><span>4110</span><span>break</span><span>;
</span><span>4111</span><span>4112</span><span>case</span><span> DataGridViewHeaderBorderStyle.None:
</span><span>4113</span><span>this</span>.advancedRowHeadersBorderStyle.All =<span> DataGridViewAdvancedCellBorderStyle.None;
</span><span>4114</span><span>break</span><span>;
</span><span>4115</span><span> }
</span><span>4116</span><span> }
</span><span>4117</span><span>finally</span><span>4118</span><span> {
</span><span>4119</span><span>this</span>.dataGridViewOper[DATAGRIDVIEWOPER_inBorderStyleChange] = <span>false</span><span>;
</span><span>4120</span><span> }
</span><span>4121</span><span> OnRowHeadersBorderStyleChanged(EventArgs.Empty);
</span><span>4122</span><span> }
</span><span>4123</span><span> }
</span><span>4124</span><span> }
</span><span>4125</span><span>4126</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersBorderStyleChanged"]/*‘ /></span><span>4127</span><span> [
</span><span>4128</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>4129</span><span> SRDescription(SR.DataGridView_RowHeadersBorderStyleChangedDescr)
</span><span>4130</span><span> ]
</span><span>4131</span><span>public</span><span>event</span><span> EventHandler RowHeadersBorderStyleChanged
</span><span>4132</span><span> {
</span><span>4133</span><span> add
</span><span>4134</span><span> {
</span><span>4135</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERSBORDERSTYLECHANGED, value);
</span><span>4136</span><span> }
</span><span>4137</span><span> remove
</span><span>4138</span><span> {
</span><span>4139</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERSBORDERSTYLECHANGED, value);
</span><span>4140</span><span> }
</span><span>4141</span><span> }
</span><span>4142</span><span>4143</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersDefaultCellStyle"]/*‘ /></span><span>4144</span><span> [
</span><span>4145</span><span> SRCategory(SR.CatAppearance),
</span><span>4146</span><span> SRDescription(SR.DataGridView_RowHeadersDefaultCellStyleDescr),
</span><span>4147</span> AmbientValue(<span>null</span><span>)
</span><span>4148</span><span> ]
</span><span>4149</span><span>public</span><span> DataGridViewCellStyle RowHeadersDefaultCellStyle
</span><span>4150</span><span> {
</span><span>4151</span><span>get</span><span>4152</span><span> {
</span><span>4153</span><span>if</span> (<span>this</span>.rowHeadersDefaultCellStyle == <span>null</span><span>)
</span><span>4154</span><span> {
</span><span>4155</span><span>this</span>.rowHeadersDefaultCellStyle = <span>this</span><span>.DefaultRowHeadersDefaultCellStyle;
</span><span>4156</span><span> }
</span><span>4157</span><span>return</span><span>this</span><span>.rowHeadersDefaultCellStyle;
</span><span>4158</span><span> }
</span><span>4159</span><span>set</span><span>4160</span><span> {
</span><span>4161</span> DataGridViewCellStyle cs = <span>this</span><span>.RowHeadersDefaultCellStyle;
</span><span>4162</span><span> cs.RemoveScope(DataGridViewCellStyleScopes.RowHeaders);
</span><span>4163</span><span>this</span>.rowHeadersDefaultCellStyle =<span> value;
</span><span>4164</span><span>if</span> (value != <span>null</span><span>)
</span><span>4165</span><span> {
</span><span>4166</span><span>this</span>.rowHeadersDefaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.RowHeaders);
</span><span>4167</span><span> }
</span><span>4168</span> DataGridViewCellStyleDifferences dgvcsc = cs.GetDifferencesFrom(<span>this</span><span>.RowHeadersDefaultCellStyle);
</span><span>4169</span><span>if</span> (dgvcsc !=<span> DataGridViewCellStyleDifferences.None)
</span><span>4170</span><span> {
</span><span>4171</span><span>this</span>.CellStyleChangedEventArgs.ChangeAffectsPreferredSize = (dgvcsc ==<span> DataGridViewCellStyleDifferences.AffectPreferredSize);
</span><span>4172</span> OnRowHeadersDefaultCellStyleChanged(<span>this</span><span>.CellStyleChangedEventArgs);
</span><span>4173</span><span> }
</span><span>4174</span><span> }
</span><span>4175</span><span> }
</span><span>4176</span><span>4177</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersDefaultCellStyleChanged"]/*‘ /></span><span>4178</span><span> [
</span><span>4179</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>4180</span><span> SRDescription(SR.DataGridViewRowHeadersDefaultCellStyleChangedDescr)
</span><span>4181</span><span> ]
</span><span>4182</span><span>public</span><span>event</span><span> EventHandler RowHeadersDefaultCellStyleChanged
</span><span>4183</span><span> {
</span><span>4184</span><span> add
</span><span>4185</span><span> {
</span><span>4186</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERSDEFAULTCELLSTYLECHANGED, value);
</span><span>4187</span><span> }
</span><span>4188</span><span> remove
</span><span>4189</span><span> {
</span><span>4190</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERSDEFAULTCELLSTYLECHANGED, value);
</span><span>4191</span><span> }
</span><span>4192</span><span> }
</span><span>4193</span><span>4194</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersVisible"]/*‘ /></span><span>4195</span><span>///</span><span><devdoc></span><span>4196</span><span>///</span><span><para></span><span>4197</span><span>///</span><span> Gets or sets a value indicating whether the dataGridView‘s row headers are
</span><span>4198</span><span>///</span><span> visible.
</span><span>4199</span><span>///</span><span></para></span><span>4200</span><span>///</span><span></devdoc></span><span>4201</span><span> [
</span><span>4202</span><span> SRCategory(SR.CatAppearance),
</span><span>4203</span> DefaultValue(<span>true</span><span>),
</span><span>4204</span><span> SRDescription(SR.DataGridViewRowHeadersVisibleDescr)
</span><span>4205</span><span> ]
</span><span>4206</span><span>public</span><span>bool</span><span> RowHeadersVisible
</span><span>4207</span><span> {
</span><span>4208</span><span>get</span><span>4209</span><span> {
</span><span>4210</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_rowHeadersVisible];
</span><span>4211</span><span> }
</span><span>4212</span><span>set</span><span>4213</span><span> {
</span><span>4214</span><span>if</span> (<span>this</span>.RowHeadersVisible !=<span> value)
</span><span>4215</span><span> {
</span><span>4216</span><span>if</span> (!value &&
<span>4217</span> (<span>this</span>.autoSizeRowsMode == DataGridViewAutoSizeRowsMode.AllHeaders || <span>this</span>.autoSizeRowsMode ==<span> DataGridViewAutoSizeRowsMode.DisplayedHeaders))
</span><span>4218</span><span> {
</span><span>4219</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_RowHeadersCannotBeInvisible));
</span><span>4220</span><span> }
</span><span>4221</span><span>using</span> (LayoutTransaction.CreateTransactionIf(<span>this</span>.AutoSize, <span>this</span>.ParentInternal, <span>this</span><span>, PropertyNames.RowHeadersVisible))
</span><span>4222</span><span> {
</span><span>4223</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_rowHeadersVisible] =<span> value;
</span><span>4224</span><span>this</span>.layout.RowHeadersVisible =<span> value;
</span><span>4225</span><span>this</span><span>.displayedBandsInfo.EnsureDirtyState();
</span><span>4226</span><span>if</span> (!<span>this</span><span>.AutoSize)
</span><span>4227</span><span> {
</span><span>4228</span> PerformLayoutPrivate(<span>false</span><span>/*</span><span>useRowShortcut</span><span>*/</span>, <span>false</span><span>/*</span><span>computeVisibleRows</span><span>*/</span>, <span>true</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span>, <span>true</span><span>/*</span><span>repositionEditingControl</span><span>*/</span><span>);
</span><span>4229</span><span> }
</span><span>4230</span><span> InvalidateInside();
</span><span>4231</span> OnRowHeadersGlobalAutoSize(value <span>/*</span><span>expandingRows</span><span>*/</span><span>);
</span><span>4232</span><span> }
</span><span>4233</span><span> }
</span><span>4234</span><span> }
</span><span>4235</span><span> }
</span><span>4236</span><span>4237</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersWidth"]/*‘ /></span><span>4238</span><span> [
</span><span>4239</span><span> SRCategory(SR.CatLayout),
</span><span>4240</span> Localizable(<span>true</span><span>),
</span><span>4241</span><span> SRDescription(SR.DataGridView_RowHeadersWidthDescr)
</span><span>4242</span><span> ]
</span><span>4243</span><span>public</span><span>int</span><span> RowHeadersWidth
</span><span>4244</span><span> {
</span><span>4245</span><span>get</span><span>4246</span><span> {
</span><span>4247</span><span>return</span><span>this</span><span>.rowHeadersWidth;
</span><span>4248</span><span> }
</span><span>4249</span><span>set</span><span>4250</span><span> {
</span><span>4251</span><span>if</span> (value <<span> minimumRowHeadersWidth)
</span><span>4252</span><span> {
</span><span>4253</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>RowHeadersWidth</span><span>"</span>, SR.GetString(SR.InvalidLowBoundArgumentEx, <span>"</span><span>RowHeadersWidth</span><span>"</span><span>, (value).ToString(CultureInfo.CurrentCulture), (minimumRowHeadersWidth).ToString(CultureInfo.CurrentCulture)));
</span><span>4254</span><span> }
</span><span>4255</span><span>if</span> (value ><span> maxHeadersThickness)
</span><span>4256</span><span> {
</span><span>4257</span><span>throw</span><span>new</span> ArgumentOutOfRangeException(<span>"</span><span>RowHeadersWidth</span><span>"</span>, SR.GetString(SR.InvalidHighBoundArgumentEx, <span>"</span><span>RowHeadersWidth</span><span>"</span><span>, (value).ToString(CultureInfo.CurrentCulture), (maxHeadersThickness).ToString(CultureInfo.CurrentCulture)));
</span><span>4258</span><span> }
</span><span>4259</span><span>if</span> (<span>this</span>.RowHeadersWidthSizeMode != DataGridViewRowHeadersWidthSizeMode.EnableResizing &&
<span>4260</span><span>this</span>.RowHeadersWidthSizeMode !=<span> DataGridViewRowHeadersWidthSizeMode.DisableResizing)
</span><span>4261</span><span> {
</span><span>4262</span><span>this</span>.cachedRowHeadersWidth =<span> value;
</span><span>4263</span><span> }
</span><span>4264</span><span>else</span><span>if</span> (<span>this</span>.rowHeadersWidth !=<span> value)
</span><span>4265</span><span> {
</span><span>4266</span><span>this</span>.RowHeadersWidthInternal =<span> value;
</span><span>4267</span><span> }
</span><span>4268</span><span> }
</span><span>4269</span><span> }
</span><span>4270</span><span>4271</span><span>private</span><span>int</span><span> RowHeadersWidthInternal
</span><span>4272</span><span> {
</span><span>4273</span><span>set</span><span>4274</span><span> {
</span><span>4275</span><span>using</span> (LayoutTransaction.CreateTransactionIf(<span>this</span>.AutoSize, <span>this</span>.ParentInternal, <span>this</span><span>, PropertyNames.RowHeadersWidth))
</span><span>4276</span><span> {
</span><span>4277</span> Debug.Assert(<span>this</span>.rowHeadersWidth !=<span> value);
</span><span>4278</span> Debug.Assert(value >=<span> minimumRowHeadersWidth);
</span><span>4279</span><span>this</span>.rowHeadersWidth =<span> value;
</span><span>4280</span><span>if</span> (<span>this</span><span>.AutoSize)
</span><span>4281</span><span> {
</span><span>4282</span><span> InvalidateInside();
</span><span>4283</span><span> }
</span><span>4284</span><span>else</span><span>4285</span><span> {
</span><span>4286</span><span>if</span> (<span>this</span><span>.layout.RowHeadersVisible)
</span><span>4287</span><span> {
</span><span>4288</span> PerformLayoutPrivate(<span>false</span><span>/*</span><span>useRowShortcut</span><span>*/</span>, <span>false</span><span>/*</span><span>computeVisibleRows</span><span>*/</span>, <span>true</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span>, <span>true</span><span>/*</span><span>repositionEditingControl</span><span>*/</span><span>);
</span><span>4289</span><span> InvalidateInside();
</span><span>4290</span><span> }
</span><span>4291</span><span> }
</span><span>4292</span><span> OnRowHeadersWidthChanged(EventArgs.Empty);
</span><span>4293</span><span> }
</span><span>4294</span><span> }
</span><span>4295</span><span> }
</span><span>4296</span><span>4297</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersWidthChanged"]/*‘ /></span><span>4298</span><span> [
</span><span>4299</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>4300</span><span> SRDescription(SR.DataGridViewRowHeadersWidthChangedDescr)
</span><span>4301</span><span> ]
</span><span>4302</span><span>public</span><span>event</span><span> EventHandler RowHeadersWidthChanged
</span><span>4303</span><span> {
</span><span>4304</span><span> add
</span><span>4305</span><span> {
</span><span>4306</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERSWIDTHCHANGED, value);
</span><span>4307</span><span> }
</span><span>4308</span><span> remove
</span><span>4309</span><span> {
</span><span>4310</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERSWIDTHCHANGED, value);
</span><span>4311</span><span> }
</span><span>4312</span><span> }
</span><span>4313</span><span>4314</span><span>private</span><span>bool</span><span> ShouldSerializeRowHeadersWidth()
</span><span>4315</span><span> {
</span><span>4316</span><span>return</span> (<span>this</span>.rowHeadersWidthSizeMode == DataGridViewRowHeadersWidthSizeMode.EnableResizing || <span>this</span>.rowHeadersWidthSizeMode == DataGridViewRowHeadersWidthSizeMode.DisableResizing) &&
<span>4317</span> defaultRowHeadersWidth != <span>this</span><span>.RowHeadersWidth;
</span><span>4318</span><span> }
</span><span>4319</span><span>4320</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersWidthSizeMode"]/*‘ /></span><span>4321</span><span>///</span><span><devdoc></span><span>4322</span><span>///</span><span><para></span><span>4323</span><span>///</span><span> Gets or sets a value that determines the behavior for adjusting the row headers width.
</span><span>4324</span><span>///</span><span></para></span><span>4325</span><span>///</span><span></devdoc></span><span>4326</span><span> [
</span><span>4327</span><span> DefaultValue(DataGridViewRowHeadersWidthSizeMode.EnableResizing),
</span><span>4328</span><span> RefreshProperties(RefreshProperties.All),
</span><span>4329</span><span> SRCategory(SR.CatBehavior),
</span><span>4330</span><span> SRDescription(SR.DataGridView_RowHeadersWidthSizeModeDescr)
</span><span>4331</span><span> ]
</span><span>4332</span><span>public</span><span> DataGridViewRowHeadersWidthSizeMode RowHeadersWidthSizeMode
</span><span>4333</span><span> {
</span><span>4334</span><span>get</span><span>4335</span><span> {
</span><span>4336</span><span>return</span><span>this</span><span>.rowHeadersWidthSizeMode;
</span><span>4337</span><span> }
</span><span>4338</span><span>set</span><span>4339</span><span> {
</span><span>4340</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x4</span><span>4341</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewRowHeadersWidthSizeMode.EnableResizing, (<span>int</span><span>)DataGridViewRowHeadersWidthSizeMode.AutoSizeToFirstHeader))
</span><span>4342</span><span> {
</span><span>4343</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewRowHeadersWidthSizeMode));
</span><span>4344</span><span> }
</span><span>4345</span><span>if</span> (<span>this</span>.rowHeadersWidthSizeMode !=<span> value)
</span><span>4346</span><span> {
</span><span>4347</span><span>/*</span><span>if (value != DataGridViewRowHeadersWidthSizeMode.EnableResizing &&
</span><span>4348</span><span> * value != DataGridViewRowHeadersWidthSizeMode.DisableResizing &&
</span><span>4349</span><span> * !this.RowHeadersVisible)
</span><span>4350</span><span> {
</span><span>4351</span><span> We intentionally don‘t throw an error because of designer code spit order.
</span><span>4352</span><span> }</span><span>*/</span><span>4353</span> DataGridViewAutoSizeModeEventArgs dgvasme = <span>new</span> DataGridViewAutoSizeModeEventArgs(<span>this</span>.rowHeadersWidthSizeMode != DataGridViewRowHeadersWidthSizeMode.EnableResizing &&
<span>4354</span><span>this</span>.rowHeadersWidthSizeMode !=<span> DataGridViewRowHeadersWidthSizeMode.DisableResizing);
</span><span>4355</span><span>this</span>.rowHeadersWidthSizeMode =<span> value;
</span><span>4356</span><span> OnRowHeadersWidthSizeModeChanged(dgvasme);
</span><span>4357</span><span> }
</span><span>4358</span><span> }
</span><span>4359</span><span> }
</span><span>4360</span><span>4361</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeadersWidthSizeModeChanged"]/*‘ /></span><span>4362</span><span> [
</span><span>4363</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>4364</span><span> SRDescription(SR.DataGridView_RowHeadersWidthSizeModeChangedDescr)
</span><span>4365</span><span> ]
</span><span>4366</span><span>public</span><span>event</span><span> DataGridViewAutoSizeModeEventHandler RowHeadersWidthSizeModeChanged
</span><span>4367</span><span> {
</span><span>4368</span><span> add
</span><span>4369</span><span> {
</span><span>4370</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERSWIDTHSIZEMODECHANGED, value);
</span><span>4371</span><span> }
</span><span>4372</span><span> remove
</span><span>4373</span><span> {
</span><span>4374</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERSWIDTHSIZEMODECHANGED, value);
</span><span>4375</span><span> }
</span><span>4376</span><span> }
</span><span>4377</span><span>4378</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Rows"]/*‘ /></span><span>4379</span><span> [
</span><span>4380</span> Browsable(<span>false</span><span>)
</span><span>4381</span><span> ]
</span><span>4382</span><span>public</span><span> DataGridViewRowCollection Rows
</span><span>4383</span><span> {
</span><span>4384</span><span>get</span><span>4385</span><span> {
</span><span>4386</span><span>if</span> (<span>this</span>.dataGridViewRows == <span>null</span><span>)
</span><span>4387</span><span> {
</span><span>4388</span><span>this</span>.dataGridViewRows =<span> CreateRowsInstance();
</span><span>4389</span><span> }
</span><span>4390</span><span>return</span><span>this</span><span>.dataGridViewRows;
</span><span>4391</span><span> }
</span><span>4392</span><span> }
</span><span>4393</span><span>4394</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowsDefaultCellStyle"]/*‘ /></span><span>4395</span><span> [
</span><span>4396</span><span> SRCategory(SR.CatAppearance),
</span><span>4397</span><span> SRDescription(SR.DataGridView_RowsDefaultCellStyleDescr)
</span><span>4398</span><span> ]
</span><span>4399</span><span>public</span><span> DataGridViewCellStyle RowsDefaultCellStyle
</span><span>4400</span><span> {
</span><span>4401</span><span>get</span><span>4402</span><span> {
</span><span>4403</span><span>if</span> (<span>this</span>.rowsDefaultCellStyle == <span>null</span><span>)
</span><span>4404</span><span> {
</span><span>4405</span><span>this</span>.rowsDefaultCellStyle = <span>new</span><span> DataGridViewCellStyle();
</span><span>4406</span><span>this</span>.rowsDefaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.Rows);
</span><span>4407</span><span> }
</span><span>4408</span><span>return</span><span>this</span><span>.rowsDefaultCellStyle;
</span><span>4409</span><span> }
</span><span>4410</span><span>set</span><span>4411</span><span> {
</span><span>4412</span> DataGridViewCellStyle cs = <span>this</span><span>.RowsDefaultCellStyle;
</span><span>4413</span><span> cs.RemoveScope(DataGridViewCellStyleScopes.Rows);
</span><span>4414</span><span>this</span>.rowsDefaultCellStyle =<span> value;
</span><span>4415</span><span>if</span> (value != <span>null</span><span>)
</span><span>4416</span><span> {
</span><span>4417</span><span>this</span>.rowsDefaultCellStyle.AddScope(<span>this</span><span>, DataGridViewCellStyleScopes.Rows);
</span><span>4418</span><span> }
</span><span>4419</span> DataGridViewCellStyleDifferences dgvcsc = cs.GetDifferencesFrom(<span>this</span><span>.RowsDefaultCellStyle);
</span><span>4420</span><span>if</span> (dgvcsc !=<span> DataGridViewCellStyleDifferences.None)
</span><span>4421</span><span> {
</span><span>4422</span><span>this</span>.CellStyleChangedEventArgs.ChangeAffectsPreferredSize = (dgvcsc ==<span> DataGridViewCellStyleDifferences.AffectPreferredSize);
</span><span>4423</span> OnRowsDefaultCellStyleChanged(<span>this</span><span>.CellStyleChangedEventArgs);
</span><span>4424</span><span> }
</span><span>4425</span><span> }
</span><span>4426</span><span> }
</span><span>4427</span><span>4428</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowsDefaultCellStyleChanged"]/*‘ /></span><span>4429</span><span> [
</span><span>4430</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>4431</span><span> SRDescription(SR.DataGridViewRowsDefaultCellStyleChangedDescr)
</span><span>4432</span><span> ]
</span><span>4433</span><span>public</span><span>event</span><span> EventHandler RowsDefaultCellStyleChanged
</span><span>4434</span><span> {
</span><span>4435</span><span> add
</span><span>4436</span><span> {
</span><span>4437</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWSDEFAULTCELLSTYLECHANGED, value);
</span><span>4438</span><span> }
</span><span>4439</span><span> remove
</span><span>4440</span><span> {
</span><span>4441</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWSDEFAULTCELLSTYLECHANGED, value);
</span><span>4442</span><span> }
</span><span>4443</span><span> }
</span><span>4444</span><span>4445</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowTemplate"]/*‘ /></span><span>4446</span><span> [
</span><span>4447</span><span> SRCategory(SR.CatAppearance),
</span><span>4448</span> Browsable(<span>true</span><span>),
</span><span>4449</span><span> SRDescription(SR.DataGridView_RowTemplateDescr),
</span><span>4450</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Content)
</span><span>4451</span><span> ]
</span><span>4452</span><span>public</span><span> DataGridViewRow RowTemplate
</span><span>4453</span><span> {
</span><span>4454</span><span>get</span><span>4455</span><span> {
</span><span>4456</span><span>if</span> (<span>this</span>.rowTemplate == <span>null</span><span>)
</span><span>4457</span><span> {
</span><span>4458</span><span>this</span>.rowTemplate = <span>new</span><span> DataGridViewRow();
</span><span>4459</span><span> }
</span><span>4460</span><span>return</span><span>this</span><span>.rowTemplate;
</span><span>4461</span><span> }
</span><span>4462</span><span>set</span><span>4463</span><span> {
</span><span>4464</span> DataGridViewRow dataGridViewRow =<span> value;
</span><span>4465</span><span>if</span> (dataGridViewRow != <span>null</span><span>)
</span><span>4466</span><span> {
</span><span>4467</span><span>if</span> (dataGridViewRow.DataGridView != <span>null</span><span>)
</span><span>4468</span><span> {
</span><span>4469</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_RowAlreadyBelongsToDataGridView));
</span><span>4470</span><span> }
</span><span>4471</span><span>//</span><span>if (dataGridViewRow.Selected)
</span><span>4472</span><span>//</span><span>{
</span><span>4473</span><span>//</span><span> throw new InvalidOperationException(SR.GetString(SR.DataGridView_RowTemplateCannotBeSelected));
</span><span>4474</span><span>//</span><span>}</span><span>4475</span><span> }
</span><span>4476</span><span>this</span>.rowTemplate =<span> dataGridViewRow;
</span><span>4477</span><span> }
</span><span>4478</span><span> }
</span><span>4479</span><span>4480</span><span>private</span><span>bool</span><span> ShouldSerializeRowTemplate()
</span><span>4481</span><span> {
</span><span>4482</span><span>return</span><span>this</span>.rowTemplate != <span>null</span><span>;
</span><span>4483</span><span> }
</span><span>4484</span><span>4485</span><span>internal</span><span> DataGridViewRow RowTemplateClone
</span><span>4486</span><span> {
</span><span>4487</span><span>get</span><span>4488</span><span> {
</span><span>4489</span> DataGridViewRow rowTemplateClone = (DataGridViewRow) <span>this</span><span>.RowTemplate.Clone();
</span><span>4490</span><span> CompleteCellsCollection(rowTemplateClone);
</span><span>4491</span><span>return</span><span> rowTemplateClone;
</span><span>4492</span><span> }
</span><span>4493</span><span> }
</span><span>4494</span><span>4495</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ScrollBars"]/*‘ /></span><span>4496</span><span>///</span><span><devdoc></span><span>4497</span><span>///</span><span> Possible return values are given by the ScrollBars enumeration.
</span><span>4498</span><span>///</span><span></devdoc></span><span>4499</span><span> [
</span><span>4500</span><span> DefaultValue(ScrollBars.Both),
</span><span>4501</span> Localizable(<span>true</span><span>),
</span><span>4502</span><span> SRCategory(SR.CatLayout),
</span><span>4503</span><span> SRDescription(SR.DataGridView_ScrollBarsDescr)
</span><span>4504</span><span> ]
</span><span>4505</span><span>public</span><span> ScrollBars ScrollBars
</span><span>4506</span><span> {
</span><span>4507</span><span>get</span><span>4508</span><span> {
</span><span>4509</span><span>return</span><span>this</span><span>.scrollBars;
</span><span>4510</span><span> }
</span><span>4511</span><span>set</span><span>4512</span><span> {
</span><span>4513</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x3</span><span>4514</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)ScrollBars.None, (<span>int</span><span>)ScrollBars.Both))
</span><span>4515</span><span> {
</span><span>4516</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(ScrollBars));
</span><span>4517</span><span> }
</span><span>4518</span><span>4519</span><span>if</span> (<span>this</span>.scrollBars !=<span> value)
</span><span>4520</span><span> {
</span><span>4521</span><span>using</span> (LayoutTransaction.CreateTransactionIf(<span>this</span>.AutoSize, <span>this</span>.ParentInternal, <span>this</span><span>, PropertyNames.ScrollBars))
</span><span>4522</span><span> {
</span><span>4523</span><span>//</span><span> Before changing the value of this.scrollBars, we scroll to the top-left cell to
</span><span>4524</span><span>//</span><span> avoid inconsitent state of scrollbars.</span><span>4525</span> DataGridViewColumn dataGridViewColumn = <span>this</span><span>.Columns.GetFirstColumn(DataGridViewElementStates.Visible);
</span><span>4526</span><span>int</span> firstVisibleRowIndex = <span>this</span><span>.Rows.GetFirstRow(DataGridViewElementStates.Visible);
</span><span>4527</span><span>4528</span><span>if</span> (dataGridViewColumn != <span>null</span> && firstVisibleRowIndex != -<span>1</span><span>)
</span><span>4529</span><span> {
</span><span>4530</span><span>if</span> (!ScrollIntoView(dataGridViewColumn.Index, firstVisibleRowIndex, <span>false</span><span>))
</span><span>4531</span><span> {
</span><span>4532</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_CellChangeCannotBeCommittedOrAborted));
</span><span>4533</span><span> }
</span><span>4534</span><span> }
</span><span>4535</span> Debug.Assert(<span>this</span>.HorizontalOffset == <span>0</span><span>);
</span><span>4536</span> Debug.Assert(<span>this</span>.VerticalOffset == <span>0</span><span>);
</span><span>4537</span><span>4538</span><span>this</span>.scrollBars =<span> value;
</span><span>4539</span><span>4540</span><span>if</span> (!<span>this</span><span>.AutoSize)
</span><span>4541</span><span> {
</span><span>4542</span> PerformLayoutPrivate(<span>false</span><span>/*</span><span>useRowShortcut</span><span>*/</span>, <span>false</span><span>/*</span><span>computeVisibleRows</span><span>*/</span>, <span>true</span><span>/*</span><span>invalidInAdjustFillingColumns</span><span>*/</span>, <span>true</span><span>/*</span><span>repositionEditingControl</span><span>*/</span><span>);
</span><span>4543</span><span> }
</span><span>4544</span><span> Invalidate();
</span><span>4545</span><span> }
</span><span>4546</span><span> }
</span><span>4547</span><span> }
</span><span>4548</span><span> }
</span><span>4549</span><span>4550</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SelectedCells"]/*‘ /></span><span>4551</span><span> [
</span><span>4552</span> Browsable(<span>false</span><span>)
</span><span>4553</span><span> ]
</span><span>4554</span><span>public</span><span> DataGridViewSelectedCellCollection SelectedCells
</span><span>4555</span><span> {
</span><span>4556</span><span> [
</span><span>4557</span> SuppressMessage(<span>"</span><span>Microsoft.Performance</span><span>"</span>, <span>"</span><span>CA1817:DoNotCallPropertiesThatCloneValuesInLoops</span><span>"</span>), <span>//</span><span> not legitimate</span><span>4558</span> SuppressMessage(<span>"</span><span>Microsoft.Performance</span><span>"</span>, <span>"</span><span>CA1808:AvoidCallsThatBoxValueTypes</span><span>"</span>) <span>//</span><span> consider using generics instead of DataGridViewIntLinkedList</span><span>4559</span><span> ]
</span><span>4560</span><span>get</span><span>4561</span><span> {
</span><span>4562</span> DataGridViewSelectedCellCollection stcc = <span>new</span><span> DataGridViewSelectedCellCollection();
</span><span>4563</span><span>switch</span> (<span>this</span><span>.SelectionMode)
</span><span>4564</span><span> {
</span><span>4565</span><span>case</span><span> DataGridViewSelectionMode.CellSelect:
</span><span>4566</span><span> {
</span><span>4567</span><span>//</span><span> Note: If we change the design and decide that SelectAll() should use band selection,
</span><span>4568</span><span>//</span><span> we need to add those to the selected cells.</span><span>4569</span> stcc.AddCellLinkedList(<span>this</span><span>.individualSelectedCells);
</span><span>4570</span><span>break</span><span>;
</span><span>4571</span><span> }
</span><span>4572</span><span>case</span><span> DataGridViewSelectionMode.FullColumnSelect:
</span><span>4573</span><span>case</span><span> DataGridViewSelectionMode.ColumnHeaderSelect:
</span><span>4574</span><span> {
</span><span>4575</span><span>foreach</span> (<span>int</span> columnIndex <span>in</span><span>this</span><span>.selectedBandIndexes)
</span><span>4576</span><span> {
</span><span>4577</span><span>foreach</span> (DataGridViewRow dataGridViewRow <span>in</span><span>this</span>.Rows) <span>//</span><span> unshares all rows!</span><span>4578</span><span> {
</span><span>4579</span><span> stcc.Add(dataGridViewRow.Cells[columnIndex]);
</span><span>4580</span><span> }
</span><span>4581</span><span> }
</span><span>4582</span><span>if</span> (<span>this</span>.SelectionMode ==<span> DataGridViewSelectionMode.ColumnHeaderSelect)
</span><span>4583</span><span> {
</span><span>4584</span> stcc.AddCellLinkedList(<span>this</span><span>.individualSelectedCells);
</span><span>4585</span><span> }
</span><span>4586</span><span>break</span><span>;
</span><span>4587</span><span> }
</span><span>4588</span><span>case</span><span> DataGridViewSelectionMode.FullRowSelect:
</span><span>4589</span><span>case</span><span> DataGridViewSelectionMode.RowHeaderSelect:
</span><span>4590</span><span> {
</span><span>4591</span><span>foreach</span> (<span>int</span> rowIndex <span>in</span><span>this</span><span>.selectedBandIndexes)
</span><span>4592</span><span> {
</span><span>4593</span> DataGridViewRow dataGridViewRow = (DataGridViewRow) <span>this</span>.Rows[rowIndex]; <span>//</span><span> unshares the selected row</span><span>4594</span><span>foreach</span> (DataGridViewCell dataGridViewCell <span>in</span><span> dataGridViewRow.Cells)
</span><span>4595</span><span> {
</span><span>4596</span><span> stcc.Add(dataGridViewCell);
</span><span>4597</span><span> }
</span><span>4598</span><span> }
</span><span>4599</span><span>if</span> (<span>this</span>.SelectionMode ==<span> DataGridViewSelectionMode.RowHeaderSelect)
</span><span>4600</span><span> {
</span><span>4601</span> stcc.AddCellLinkedList(<span>this</span><span>.individualSelectedCells);
</span><span>4602</span><span> }
</span><span>4603</span><span>break</span><span>;
</span><span>4604</span><span> }
</span><span>4605</span><span> }
</span><span>4606</span><span>return</span><span> stcc;
</span><span>4607</span><span> }
</span><span>4608</span><span> }
</span><span>4609</span><span>4610</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SelectedColumns"]/*‘ /></span><span>4611</span><span> [
</span><span>4612</span> Browsable(<span>false</span><span>)
</span><span>4613</span><span> ]
</span><span>4614</span><span>public</span><span> DataGridViewSelectedColumnCollection SelectedColumns
</span><span>4615</span><span> {
</span><span>4616</span><span> [
</span><span>4617</span> SuppressMessage(<span>"</span><span>Microsoft.Performance</span><span>"</span>, <span>"</span><span>CA1808:AvoidCallsThatBoxValueTypes</span><span>"</span>) <span>//</span><span> consider using generics instead of DataGridViewIntLinkedList</span><span>4618</span><span> ]
</span><span>4619</span><span>get</span><span>4620</span><span> {
</span><span>4621</span> DataGridViewSelectedColumnCollection strc = <span>new</span><span> DataGridViewSelectedColumnCollection();
</span><span>4622</span><span>switch</span> (<span>this</span><span>.SelectionMode)
</span><span>4623</span><span> {
</span><span>4624</span><span>case</span><span> DataGridViewSelectionMode.CellSelect:
</span><span>4625</span><span>case</span><span> DataGridViewSelectionMode.FullRowSelect:
</span><span>4626</span><span>case</span><span> DataGridViewSelectionMode.RowHeaderSelect:
</span><span>4627</span><span>break</span><span>;
</span><span>4628</span><span>case</span><span> DataGridViewSelectionMode.FullColumnSelect:
</span><span>4629</span><span>case</span><span> DataGridViewSelectionMode.ColumnHeaderSelect:
</span><span>4630</span><span>foreach</span> (<span>int</span> columnIndex <span>in</span><span>this</span><span>.selectedBandIndexes)
</span><span>4631</span><span> {
</span><span>4632</span> strc.Add(<span>this</span><span>.Columns[columnIndex]);
</span><span>4633</span><span> }
</span><span>4634</span><span>break</span><span>;
</span><span>4635</span><span> }
</span><span>4636</span><span>return</span><span> strc;
</span><span>4637</span><span> }
</span><span>4638</span><span> }
</span><span>4639</span><span>4640</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SelectedRows"]/*‘ /></span><span>4641</span><span> [
</span><span>4642</span> Browsable(<span>false</span><span>),
</span><span>4643</span><span> ]
</span><span>4644</span><span>public</span><span> DataGridViewSelectedRowCollection SelectedRows
</span><span>4645</span><span> {
</span><span>4646</span><span> [
</span><span>4647</span> SuppressMessage(<span>"</span><span>Microsoft.Performance</span><span>"</span>, <span>"</span><span>CA1808:AvoidCallsThatBoxValueTypes</span><span>"</span>), <span>//</span><span> using specialized DataGridViewIntLinkedList class instead of generics</span><span>4648</span> SuppressMessage(<span>"</span><span>Microsoft.Performance</span><span>"</span>, <span>"</span><span>CA1817:DoNotCallPropertiesThatCloneValuesInLoops</span><span>"</span>) <span>//</span><span> not legitimate</span><span>4649</span><span> ]
</span><span>4650</span><span>get</span><span>4651</span><span> {
</span><span>4652</span> DataGridViewSelectedRowCollection strc = <span>new</span><span> DataGridViewSelectedRowCollection();
</span><span>4653</span><span>switch</span> (<span>this</span><span>.SelectionMode)
</span><span>4654</span><span> {
</span><span>4655</span><span>case</span><span> DataGridViewSelectionMode.CellSelect:
</span><span>4656</span><span>case</span><span> DataGridViewSelectionMode.FullColumnSelect:
</span><span>4657</span><span>case</span><span> DataGridViewSelectionMode.ColumnHeaderSelect:
</span><span>4658</span><span>break</span><span>;
</span><span>4659</span><span>case</span><span> DataGridViewSelectionMode.FullRowSelect:
</span><span>4660</span><span>case</span><span> DataGridViewSelectionMode.RowHeaderSelect:
</span><span>4661</span><span>foreach</span> (<span>int</span> rowIndex <span>in</span><span>this</span><span>.selectedBandIndexes)
</span><span>4662</span><span> {
</span><span>4663</span> strc.Add((DataGridViewRow) <span>this</span>.Rows[rowIndex]); <span>//</span><span> unshares the selected row</span><span>4664</span><span> }
</span><span>4665</span><span>break</span><span>;
</span><span>4666</span><span> }
</span><span>4667</span><span>return</span><span> strc;
</span><span>4668</span><span> }
</span><span>4669</span><span> }
</span><span>4670</span><span>4671</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SelectionMode"]/*‘ /></span><span>4672</span><span> [
</span><span>4673</span> Browsable(<span>true</span><span>),
</span><span>4674</span><span> SRCategory(SR.CatBehavior),
</span><span>4675</span><span> DefaultValue(DataGridViewSelectionMode.RowHeaderSelect),
</span><span>4676</span><span> SRDescription(SR.DataGridView_SelectionModeDescr)
</span><span>4677</span><span> ]
</span><span>4678</span><span>public</span><span> DataGridViewSelectionMode SelectionMode
</span><span>4679</span><span> {
</span><span>4680</span><span>get</span><span>4681</span><span> {
</span><span>4682</span><span>return</span><span>this</span><span>.selectionMode;
</span><span>4683</span><span> }
</span><span>4684</span><span>set</span><span>4685</span><span> {
</span><span>4686</span><span>//</span><span> Sequential enum. Valid values are 0x0 to 0x4</span><span>4687</span><span>if</span> (!ClientUtils.IsEnumValid(value, (<span>int</span>)value, (<span>int</span>)DataGridViewSelectionMode.CellSelect, (<span>int</span><span>)DataGridViewSelectionMode.ColumnHeaderSelect))
</span><span>4688</span><span> {
</span><span>4689</span><span>throw</span><span>new</span> InvalidEnumArgumentException(<span>"</span><span>value</span><span>"</span>, (<span>int</span>)value, <span>typeof</span><span>(DataGridViewSelectionMode));
</span><span>4690</span><span> }
</span><span>4691</span><span>4692</span><span>if</span> (<span>this</span>.SelectionMode !=<span> value)
</span><span>4693</span><span> {
</span><span>4694</span><span>if</span> (!<span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_initializing] &&
<span>4695</span> (value == DataGridViewSelectionMode.FullColumnSelect || value ==<span> DataGridViewSelectionMode.ColumnHeaderSelect))
</span><span>4696</span><span> {
</span><span>4697</span><span>foreach</span> (DataGridViewColumn dataGridViewColumn <span>in</span><span>this</span><span>.Columns)
</span><span>4698</span><span> {
</span><span>4699</span><span>if</span> (dataGridViewColumn.SortMode ==<span> DataGridViewColumnSortMode.Automatic)
</span><span>4700</span><span> {
</span><span>4701</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_SelectionModeAndSortModeClash, (value).ToString()));
</span><span>4702</span><span> }
</span><span>4703</span><span> }
</span><span>4704</span><span> }
</span><span>4705</span><span> ClearSelection();
</span><span>4706</span><span>this</span>.selectionMode =<span> value;
</span><span>4707</span><span> }
</span><span>4708</span><span> }
</span><span>4709</span><span> }
</span><span>4710</span><span>4711</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ShowCellErrors"]/*‘ /></span><span>4712</span><span> [
</span><span>4713</span> DefaultValue(<span>true</span><span>),
</span><span>4714</span><span> SRCategory(SR.CatAppearance),
</span><span>4715</span><span> SRDescription(SR.DataGridView_ShowCellErrorsDescr)
</span><span>4716</span><span> ]
</span><span>4717</span><span>public</span><span>bool</span><span> ShowCellErrors
</span><span>4718</span><span> {
</span><span>4719</span><span>get</span><span>4720</span><span> {
</span><span>4721</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showCellErrors];
</span><span>4722</span><span> }
</span><span>4723</span><span>set</span><span>4724</span><span> {
</span><span>4725</span><span>if</span> (<span>this</span>.ShowCellErrors !=<span> value)
</span><span>4726</span><span> {
</span><span>4727</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showCellErrors] =<span> value;
</span><span>4728</span><span>4729</span><span>//</span><span> Put this into OnShowCellErrorsChanged if created.</span><span>4730</span><span>if</span> (<span>this</span>.IsHandleCreated && !<span>this</span><span>.DesignMode)
</span><span>4731</span><span> {
</span><span>4732</span><span>if</span> (value && !<span>this</span>.ShowRowErrors && !<span>this</span><span>.ShowCellToolTips)
</span><span>4733</span><span> {
</span><span>4734</span><span>//</span><span> the tool tip hasn‘t yet been activated
</span><span>4735</span><span>//</span><span> activate it now</span><span>4736</span><span>this</span>.toolTipControl.Activate(!String.IsNullOrEmpty(<span>this</span><span>.toolTipCaption));
</span><span>4737</span><span> }
</span><span>4738</span><span>4739</span><span>if</span> (!value && !<span>this</span>.ShowRowErrors && !<span>this</span><span>.ShowCellToolTips)
</span><span>4740</span><span> {
</span><span>4741</span><span>//</span><span> there is no reason to keep the tool tip activated
</span><span>4742</span><span>//</span><span> deactivate it</span><span>4743</span><span>this</span>.toolTipCaption =<span> String.Empty;
</span><span>4744</span><span>this</span>.toolTipControl.Activate(<span>false</span><span>/*</span><span>activate</span><span>*/</span><span>);
</span><span>4745</span><span> }
</span><span>4746</span><span>4747</span><span>if</span> (!value && (<span>this</span>.ShowRowErrors || <span>this</span><span>.ShowCellToolTips))
</span><span>4748</span><span> {
</span><span>4749</span><span>//</span><span> reset the tool tip</span><span>4750</span><span>this</span>.toolTipControl.Activate(!String.IsNullOrEmpty(<span>this</span><span>.toolTipCaption));
</span><span>4751</span><span> }
</span><span>4752</span><span>4753</span><span>//</span><span> Some autosizing may have to be applied since the potential presence of error icons influences the preferred sizes.</span><span>4754</span><span> OnGlobalAutoSize();
</span><span>4755</span><span> }
</span><span>4756</span><span>4757</span><span>if</span> (!<span>this</span>.layout.dirty && !<span>this</span><span>.DesignMode)
</span><span>4758</span><span> {
</span><span>4759</span><span>this</span>.Invalidate(Rectangle.Union(<span>this</span>.layout.Data, <span>this</span><span>.layout.ColumnHeaders));
</span><span>4760</span><span>this</span>.Invalidate(<span>this</span><span>.layout.TopLeftHeader);
</span><span>4761</span><span> }
</span><span>4762</span><span> }
</span><span>4763</span><span> }
</span><span>4764</span><span> }
</span><span>4765</span><span>4766</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ShowCellToolTips"]/*‘ /></span><span>4767</span><span> [
</span><span>4768</span> DefaultValue(<span>true</span><span>),
</span><span>4769</span><span> SRCategory(SR.CatAppearance),
</span><span>4770</span><span> SRDescription(SR.DataGridView_ShowCellToolTipsDescr)
</span><span>4771</span><span> ]
</span><span>4772</span><span>public</span><span>bool</span><span> ShowCellToolTips
</span><span>4773</span><span> {
</span><span>4774</span><span>get</span><span>4775</span><span> {
</span><span>4776</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showCellToolTips];
</span><span>4777</span><span> }
</span><span>4778</span><span>set</span><span>4779</span><span> {
</span><span>4780</span><span>if</span> (<span>this</span>.ShowCellToolTips !=<span> value)
</span><span>4781</span><span> {
</span><span>4782</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showCellToolTips] =<span> value;
</span><span>4783</span><span>4784</span><span>if</span> (<span>this</span>.IsHandleCreated && !<span>this</span><span>.DesignMode)
</span><span>4785</span><span> {
</span><span>4786</span><span>if</span> (value && !<span>this</span>.ShowRowErrors && !<span>this</span><span>.ShowCellErrors)
</span><span>4787</span><span> {
</span><span>4788</span><span>//</span><span> the tool tip hasn‘t yet been activated
</span><span>4789</span><span>//</span><span> activate it now</span><span>4790</span><span>this</span>.toolTipControl.Activate(!String.IsNullOrEmpty(<span>this</span>.toolTipCaption) <span>/*</span><span>activate</span><span>*/</span><span>);
</span><span>4791</span><span> }
</span><span>4792</span><span>4793</span><span>if</span> (!value && !<span>this</span>.ShowRowErrors && !<span>this</span><span>.ShowCellErrors)
</span><span>4794</span><span> {
</span><span>4795</span><span>//</span><span> there is no reason to keep the tool tip activated
</span><span>4796</span><span>//</span><span> deactivate it</span><span>4797</span><span>this</span>.toolTipCaption =<span> String.Empty;
</span><span>4798</span><span>this</span>.toolTipControl.Activate(<span>false</span><span>/*</span><span>activate</span><span>*/</span><span>);
</span><span>4799</span><span> }
</span><span>4800</span><span>4801</span><span>if</span> (!value && (<span>this</span>.ShowRowErrors || <span>this</span><span>.ShowCellErrors))
</span><span>4802</span><span> {
</span><span>4803</span><span>bool</span> activate = !String.IsNullOrEmpty(<span>this</span><span>.toolTipCaption);
</span><span>4804</span> Point mouseCoord =<span> System.Windows.Forms.Control.MousePosition;
</span><span>4805</span> activate &= <span>this</span><span>.ClientRectangle.Contains(PointToClient(mouseCoord));
</span><span>4806</span><span>4807</span><span>//</span><span> reset the tool tip</span><span>4808</span><span>this</span><span>.toolTipControl.Activate(activate);
</span><span>4809</span><span> }
</span><span>4810</span><span> }
</span><span>4811</span><span>4812</span><span>if</span> (!<span>this</span>.layout.dirty && !<span>this</span><span>.DesignMode)
</span><span>4813</span><span> {
</span><span>4814</span> Invalidate(<span>this</span><span>.layout.Data);
</span><span>4815</span><span> }
</span><span>4816</span><span> }
</span><span>4817</span><span> }
</span><span>4818</span><span> }
</span><span>4819</span><span>4820</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ShowEditingIcon"]/*‘ /></span><span>4821</span><span> [
</span><span>4822</span> DefaultValue(<span>true</span><span>),
</span><span>4823</span><span> SRCategory(SR.CatAppearance),
</span><span>4824</span><span> SRDescription(SR.DataGridView_ShowEditingIconDescr)
</span><span>4825</span><span> ]
</span><span>4826</span><span>public</span><span>bool</span><span> ShowEditingIcon
</span><span>4827</span><span> {
</span><span>4828</span><span>get</span><span>4829</span><span> {
</span><span>4830</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showEditingIcon];
</span><span>4831</span><span> }
</span><span>4832</span><span>set</span><span>4833</span><span> {
</span><span>4834</span><span>if</span> (<span>this</span>.ShowEditingIcon !=<span> value)
</span><span>4835</span><span> {
</span><span>4836</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showEditingIcon] =<span> value;
</span><span>4837</span><span>4838</span><span>//</span><span> invalidate the row header to pick up the new ShowEditingIcon value </span><span>4839</span><span>if</span> (<span>this</span><span>.RowHeadersVisible)
</span><span>4840</span><span> {
</span><span>4841</span><span>if</span> (<span>this</span>.VirtualMode || <span>this</span>.DataSource != <span>null</span><span>)
</span><span>4842</span><span> {
</span><span>4843</span><span>if</span> (<span>this</span><span>.IsCurrentRowDirty)
</span><span>4844</span><span> {
</span><span>4845</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y >= <span>0</span><span>);
</span><span>4846</span> InvalidateCellPrivate(-<span>1</span>, <span>this</span><span>.ptCurrentCell.Y);
</span><span>4847</span><span> }
</span><span>4848</span><span> }
</span><span>4849</span><span>else</span><span>4850</span><span> {
</span><span>4851</span><span>if</span> (<span>this</span><span>.IsCurrentCellDirty) {
</span><span>4852</span> Debug.Assert(<span>this</span>.ptCurrentCell.Y >= <span>0</span><span>);
</span><span>4853</span> InvalidateCellPrivate(-<span>1</span>, <span>this</span><span>.ptCurrentCell.Y);
</span><span>4854</span><span> }
</span><span>4855</span><span> }
</span><span>4856</span><span> }
</span><span>4857</span><span> }
</span><span>4858</span><span> }
</span><span>4859</span><span> }
</span><span>4860</span><span>4861</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ShowRowErrors"]/*‘ /></span><span>4862</span><span> [
</span><span>4863</span> DefaultValue(<span>true</span><span>),
</span><span>4864</span><span> SRCategory(SR.CatAppearance),
</span><span>4865</span><span> SRDescription(SR.DataGridView_ShowRowErrorsDescr)
</span><span>4866</span><span> ]
</span><span>4867</span><span>public</span><span>bool</span><span> ShowRowErrors
</span><span>4868</span><span> {
</span><span>4869</span><span>get</span><span>4870</span><span> {
</span><span>4871</span><span>return</span><span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showRowErrors];
</span><span>4872</span><span> }
</span><span>4873</span><span>set</span><span>4874</span><span> {
</span><span>4875</span><span>if</span> (<span>this</span>.ShowRowErrors !=<span> value)
</span><span>4876</span><span> {
</span><span>4877</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_showRowErrors] =<span> value;
</span><span>4878</span><span>4879</span><span>if</span> (<span>this</span>.IsHandleCreated && !<span>this</span><span>.DesignMode)
</span><span>4880</span><span> {
</span><span>4881</span><span>if</span> (value && !<span>this</span>.ShowCellErrors && !<span>this</span><span>.ShowCellToolTips)
</span><span>4882</span><span> {
</span><span>4883</span><span>//</span><span> the tool tip hasn‘t yet been activated
</span><span>4884</span><span>//</span><span> activate it now</span><span>4885</span><span>this</span>.toolTipControl.Activate(!String.IsNullOrEmpty(<span>this</span><span>.toolTipCaption));
</span><span>4886</span><span> }
</span><span>4887</span><span>4888</span><span>if</span> (!value && !<span>this</span>.ShowCellErrors && !<span>this</span><span>.ShowCellToolTips)
</span><span>4889</span><span> {
</span><span>4890</span><span>//</span><span> there is no reason to keep the tool tip activated
</span><span>4891</span><span>//</span><span> deactivate it</span><span>4892</span><span>this</span>.toolTipCaption =<span> String.Empty;
</span><span>4893</span><span>this</span>.toolTipControl.Activate(<span>false</span><span>/*</span><span>activate</span><span>*/</span><span>);
</span><span>4894</span><span> }
</span><span>4895</span><span>4896</span><span>if</span> (!value && (<span>this</span>.ShowCellErrors || <span>this</span><span>.ShowCellToolTips))
</span><span>4897</span><span> {
</span><span>4898</span><span>//</span><span> reset the tool tip</span><span>4899</span><span>this</span>.toolTipControl.Activate(!String.IsNullOrEmpty(<span>this</span><span>.toolTipCaption));
</span><span>4900</span><span> }
</span><span>4901</span><span> }
</span><span>4902</span><span>4903</span><span>if</span> (!<span>this</span>.layout.dirty && !<span>this</span><span>.DesignMode)
</span><span>4904</span><span> {
</span><span>4905</span> Invalidate(<span>this</span><span>.layout.RowHeaders);
</span><span>4906</span><span> }
</span><span>4907</span><span> }
</span><span>4908</span><span> }
</span><span>4909</span><span> }
</span><span>4910</span><span>4911</span><span>internal</span><span>bool</span><span> SingleHorizontalBorderAdded
</span><span>4912</span><span> {
</span><span>4913</span><span>get</span><span>4914</span><span> {
</span><span>4915</span><span>return</span> !<span>this</span>.layout.ColumnHeadersVisible &&
<span>4916</span> (<span>this</span>.AdvancedCellBorderStyle.All == DataGridViewAdvancedCellBorderStyle.Single ||
<span>4917</span><span>this</span>.CellBorderStyle ==<span> DataGridViewCellBorderStyle.SingleHorizontal);
</span><span>4918</span><span> }
</span><span>4919</span><span> }
</span><span>4920</span><span>4921</span><span>internal</span><span>bool</span><span> SingleVerticalBorderAdded
</span><span>4922</span><span> {
</span><span>4923</span><span>get</span><span>4924</span><span> {
</span><span>4925</span><span>return</span> !<span>this</span>.layout.RowHeadersVisible &&
<span>4926</span> (<span>this</span>.AdvancedCellBorderStyle.All == DataGridViewAdvancedCellBorderStyle.Single ||
<span>4927</span><span>this</span>.CellBorderStyle ==<span> DataGridViewCellBorderStyle.SingleVertical);
</span><span>4928</span><span> }
</span><span>4929</span><span> }
</span><span>4930</span><span>4931</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SortedColumn"]/*‘ /></span><span>4932</span><span> [
</span><span>4933</span> Browsable(<span>false</span><span>)
</span><span>4934</span><span> ]
</span><span>4935</span><span>public</span><span> DataGridViewColumn SortedColumn
</span><span>4936</span><span> {
</span><span>4937</span><span>get</span><span>4938</span><span> {
</span><span>4939</span><span>return</span><span>this</span><span>.sortedColumn;
</span><span>4940</span><span> }
</span><span>4941</span><span> }
</span><span>4942</span><span>4943</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SortOrder"]/*‘ /></span><span>4944</span><span> [
</span><span>4945</span> Browsable(<span>false</span><span>)
</span><span>4946</span><span> ]
</span><span>4947</span><span>public</span><span> SortOrder SortOrder
</span><span>4948</span><span> {
</span><span>4949</span><span>get</span><span>4950</span><span> {
</span><span>4951</span><span>return</span><span>this</span><span>.sortOrder;
</span><span>4952</span><span> }
</span><span>4953</span><span> }
</span><span>4954</span><span>4955</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.StandardTab"]/*‘ /></span><span>4956</span><span>///</span><span><devdoc></span><span>4957</span><span>///</span><span><para></span><span>4958</span><span>///</span><span></para></span><span>4959</span><span>///</span><span></devdoc></span><span>4960</span><span> [
</span><span>4961</span><span> SRCategory(SR.CatBehavior),
</span><span>4962</span> DefaultValue(<span>false</span><span>),
</span><span>4963</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>4964</span><span> SRDescription(SR.DataGridView_StandardTabDescr)
</span><span>4965</span><span> ]
</span><span>4966</span><span>public</span><span>bool</span><span> StandardTab
</span><span>4967</span><span> {
</span><span>4968</span><span>get</span><span>4969</span><span> {
</span><span>4970</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_standardTab];
</span><span>4971</span><span> }
</span><span>4972</span><span>set</span><span>4973</span><span> {
</span><span>4974</span><span>if</span> (<span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_standardTab] !=<span> value)
</span><span>4975</span><span> {
</span><span>4976</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_standardTab] =<span> value;
</span><span>4977</span><span>//</span><span>OnStandardTabChanged(EventArgs.Empty);</span><span>4978</span><span> }
</span><span>4979</span><span> }
</span><span>4980</span><span> }
</span><span>4981</span><span>4982</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Text"]/*‘ /></span><span>4983</span><span> [
</span><span>4984</span> Browsable(<span>false</span><span>),
</span><span>4985</span><span> EditorBrowsable(EditorBrowsableState.Never),
</span><span>4986</span> Bindable(<span>false</span><span>)
</span><span>4987</span><span> ]
</span><span>4988</span><span>public</span><span>override</span><span>string</span><span> Text
</span><span>4989</span><span> {
</span><span>4990</span><span>get</span><span>4991</span><span> {
</span><span>4992</span><span>return</span><span>base</span><span>.Text;
</span><span>4993</span><span> }
</span><span>4994</span><span>set</span><span>4995</span><span> {
</span><span>4996</span><span>base</span>.Text =<span> value;
</span><span>4997</span><span> }
</span><span>4998</span><span> }
</span><span>4999</span><span>5000</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.TextChanged"]/*‘ /></span><span>5001</span><span> [
</span><span>5002</span> Browsable(<span>false</span><span>),
</span><span>5003</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>5004</span><span> ]
</span><span>5005</span><span>new</span><span>public</span><span>event</span><span> EventHandler TextChanged
</span><span>5006</span><span> {
</span><span>5007</span><span> add
</span><span>5008</span><span> {
</span><span>5009</span><span>base</span>.TextChanged +=<span> value;
</span><span>5010</span><span> }
</span><span>5011</span><span> remove
</span><span>5012</span><span> {
</span><span>5013</span><span>base</span>.TextChanged -=<span> value;
</span><span>5014</span><span> }
</span><span>5015</span><span> }
</span><span>5016</span><span>5017</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.this"]/*‘ /></span><span>5018</span><span> [
</span><span>5019</span> Browsable(<span>false</span><span>),
</span><span>5020</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
</span><span>5021</span> SuppressMessage(<span>"</span><span>Microsoft.Design</span><span>"</span>, <span>"</span><span>CA1023:IndexersShouldNotBeMultidimensional</span><span>"</span><span>)
</span><span>5022</span><span> ]
</span><span>5023</span><span>public</span> DataGridViewCell <span>this</span>[<span>int</span> columnIndex, <span>int</span><span> rowIndex]
</span><span>5024</span><span> {
</span><span>5025</span><span>get</span><span>5026</span><span> {
</span><span>5027</span> DataGridViewRow row = <span>this</span><span>.Rows[rowIndex];
</span><span>5028</span><span>return</span><span> row.Cells[columnIndex];
</span><span>5029</span><span> }
</span><span>5030</span><span>set</span><span>5031</span><span> {
</span><span>5032</span> DataGridViewRow row = <span>this</span><span>.Rows[rowIndex];
</span><span>5033</span> row.Cells[columnIndex] =<span> value;
</span><span>5034</span><span> }
</span><span>5035</span><span> }
</span><span>5036</span><span>5037</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.this1"]/*‘ /></span><span>5038</span><span> [
</span><span>5039</span> Browsable(<span>false</span><span>),
</span><span>5040</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
</span><span>5041</span> SuppressMessage(<span>"</span><span>Microsoft.Design</span><span>"</span>, <span>"</span><span>CA1023:IndexersShouldNotBeMultidimensional</span><span>"</span><span>)
</span><span>5042</span><span> ]
</span><span>5043</span><span>public</span> DataGridViewCell <span>this</span>[<span>string</span> columnName, <span>int</span><span> rowIndex]
</span><span>5044</span><span> {
</span><span>5045</span><span>get</span><span>5046</span><span> {
</span><span>5047</span> DataGridViewRow row = <span>this</span><span>.Rows[rowIndex];
</span><span>5048</span><span>return</span><span> row.Cells[columnName];
</span><span>5049</span><span> }
</span><span>5050</span><span>set</span><span>5051</span><span> {
</span><span>5052</span> DataGridViewRow row = <span>this</span><span>.Rows[rowIndex];
</span><span>5053</span> row.Cells[columnName] =<span> value;
</span><span>5054</span><span> }
</span><span>5055</span><span> }
</span><span>5056</span><span>5057</span><span>private</span><span>string</span><span> ToolTipPrivate
</span><span>5058</span><span> {
</span><span>5059</span><span>get</span><span>5060</span><span> {
</span><span>5061</span><span>return</span><span>this</span><span>.toolTipCaption;
</span><span>5062</span><span> }
</span><span>5063</span><span> }
</span><span>5064</span><span>5065</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.TopLeftHeaderCell"]/*‘ /></span><span>5066</span><span> [
</span><span>5067</span> Browsable(<span>false</span><span>),
</span><span>5068</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>5069</span><span> ]
</span><span>5070</span><span>public</span><span> DataGridViewHeaderCell TopLeftHeaderCell
</span><span>5071</span><span> {
</span><span>5072</span><span>get</span><span>5073</span><span> {
</span><span>5074</span><span>if</span> (<span>this</span>.topLeftHeaderCell == <span>null</span><span>)
</span><span>5075</span><span> {
</span><span>5076</span><span>this</span>.TopLeftHeaderCell = <span>new</span><span> DataGridViewTopLeftHeaderCell();
</span><span>5077</span><span> }
</span><span>5078</span><span>return</span><span>this</span><span>.topLeftHeaderCell;
</span><span>5079</span><span> }
</span><span>5080</span><span>set</span><span>5081</span><span> {
</span><span>5082</span><span>if</span> (<span>this</span>.topLeftHeaderCell !=<span> value)
</span><span>5083</span><span> {
</span><span>5084</span><span>if</span> (<span>this</span>.topLeftHeaderCell != <span>null</span><span>)
</span><span>5085</span><span> {
</span><span>5086</span><span>//</span><span> Detach existing header cell</span><span>5087</span><span>this</span>.topLeftHeaderCell.DataGridViewInternal = <span>null</span><span>;
</span><span>5088</span><span> }
</span><span>5089</span><span>this</span>.topLeftHeaderCell =<span> value;
</span><span>5090</span><span>if</span> (value != <span>null</span><span>)
</span><span>5091</span><span> {
</span><span>5092</span><span>this</span>.topLeftHeaderCell.DataGridViewInternal = <span>this</span><span>;
</span><span>5093</span><span> }
</span><span>5094</span><span>if</span> (<span>this</span>.ColumnHeadersVisible && <span>this</span><span>.RowHeadersVisible)
</span><span>5095</span><span> {
</span><span>5096</span><span>//</span><span> If headers (rows or columns) are autosized, then this.RowHeadersWidth or this.ColumnHeadersHeight
</span><span>5097</span><span>//</span><span> must be updated based on new cell preferred size</span><span>5098</span><span> OnColumnHeadersGlobalAutoSize();
</span><span>5099</span><span>//</span><span> In all cases, the top left cell needs to repaint</span><span>5100</span> Invalidate(<span>new</span> Rectangle(<span>this</span>.layout.Inside.X, <span>this</span>.layout.Inside.Y, <span>this</span>.RowHeadersWidth, <span>this</span><span>.ColumnHeadersHeight));
</span><span>5101</span><span> }
</span><span>5102</span><span> }
</span><span>5103</span><span> }
</span><span>5104</span><span> }
</span><span>5105</span><span>5106</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.UserSetCursor"]/*‘ /></span><span>5107</span><span> [
</span><span>5108</span> Browsable(<span>false</span><span>),
</span><span>5109</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>5110</span><span> ]
</span><span>5111</span><span>public</span><span> Cursor UserSetCursor
</span><span>5112</span><span> {
</span><span>5113</span><span>get</span><span>5114</span><span> {
</span><span>5115</span><span>if</span> (<span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_customCursorSet])
</span><span>5116</span><span> {
</span><span>5117</span><span>return</span><span>this</span><span>.oldCursor;
</span><span>5118</span><span> }
</span><span>5119</span><span>else</span><span>5120</span><span> {
</span><span>5121</span><span>return</span><span>this</span><span>.Cursor;
</span><span>5122</span><span> }
</span><span>5123</span><span> }
</span><span>5124</span><span> }
</span><span>5125</span><span>5126</span><span>internal</span><span>int</span><span> VerticalOffset
</span><span>5127</span><span> {
</span><span>5128</span><span>get</span><span>5129</span><span> {
</span><span>5130</span><span>return</span><span>this</span><span>.verticalOffset;
</span><span>5131</span><span> }
</span><span>5132</span><span>set</span><span>5133</span><span> {
</span><span>5134</span><span>if</span> (value < <span>0</span><span>)
</span><span>5135</span><span> {
</span><span>5136</span> value = <span>0</span><span>;
</span><span>5137</span><span> }
</span><span>5138</span><span>int</span> totalVisibleFrozenHeight = <span>this</span>.Rows.GetRowsHeight(DataGridViewElementStates.Visible |<span> DataGridViewElementStates.Frozen);
</span><span>5139</span><span>int</span> fittingTrailingScrollingRowsHeight =<span> ComputeHeightOfFittingTrailingScrollingRows(totalVisibleFrozenHeight);
</span><span>5140</span><span>if</span> (value > <span>this</span>.vertScrollBar.Maximum -<span> fittingTrailingScrollingRowsHeight)
</span><span>5141</span><span> {
</span><span>5142</span> value = <span>this</span>.vertScrollBar.Maximum -<span> fittingTrailingScrollingRowsHeight;
</span><span>5143</span><span> }
</span><span>5144</span><span>if</span> (value == <span>this</span><span>.verticalOffset)
</span><span>5145</span><span> {
</span><span>5146</span><span>return</span><span>;
</span><span>5147</span><span> }
</span><span>5148</span><span>5149</span><span>int</span> change = value - <span>this</span><span>.verticalOffset;
</span><span>5150</span><span>if</span> (<span>this</span><span>.vertScrollBar.Enabled)
</span><span>5151</span><span> {
</span><span>5152</span><span>this</span>.vertScrollBar.Value =<span> value;
</span><span>5153</span><span> }
</span><span>5154</span> ScrollRowsByHeight(change); <span>//</span><span> calculate how many rows need to be scrolled based on ‘change‘</span><span>5155</span><span> }
</span><span>5156</span><span> }
</span><span>5157</span><span>5158</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.VerticalScrollBar"]/*‘ /></span><span>5159</span><span>protected</span><span> ScrollBar VerticalScrollBar
</span><span>5160</span><span> {
</span><span>5161</span><span>get</span><span>5162</span><span> {
</span><span>5163</span><span>return</span><span>this</span><span>.vertScrollBar;
</span><span>5164</span><span> }
</span><span>5165</span><span> }
</span><span>5166</span><span>5167</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.VerticalScrollingOffset"]/*‘ /></span><span>5168</span><span> [
</span><span>5169</span> Browsable(<span>false</span><span>),
</span><span>5170</span><span> DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
</span><span>5171</span><span> ]
</span><span>5172</span><span>public</span><span>int</span><span> VerticalScrollingOffset
</span><span>5173</span><span> {
</span><span>5174</span><span>get</span><span>5175</span><span> {
</span><span>5176</span><span>return</span><span>this</span><span>.verticalOffset;
</span><span>5177</span><span> }
</span><span>5178</span><span> }
</span><span>5179</span><span>5180</span><span>private</span><span> System.Windows.Forms.Timer VertScrollTimer
</span><span>5181</span><span> {
</span><span>5182</span><span>get</span><span>5183</span><span> {
</span><span>5184</span><span>if</span> (<span>this</span>.vertScrollTimer == <span>null</span><span>)
</span><span>5185</span><span> {
</span><span>5186</span><span>this</span>.vertScrollTimer = <span>new</span><span> System.Windows.Forms.Timer();
</span><span>5187</span><span>this</span>.vertScrollTimer.Tick += <span>new</span><span> System.EventHandler(VertScrollTimer_Tick);
</span><span>5188</span><span> }
</span><span>5189</span><span>return</span><span>this</span><span>.vertScrollTimer;
</span><span>5190</span><span> }
</span><span>5191</span><span> }
</span><span>5192</span><span>5193</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.VirtualMode"]/*‘ /></span><span>5194</span><span>///</span><span><devdoc></span><span>5195</span><span>///</span><span><para></span><span>5196</span><span>///</span><span></para></span><span>5197</span><span>///</span><span></devdoc></span><span>5198</span><span> [
</span><span>5199</span><span> SRCategory(SR.CatBehavior),
</span><span>5200</span> DefaultValue(<span>false</span><span>),
</span><span>5201</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>5202</span><span> SRDescription(SR.DataGridViewVirtualModeDescr)
</span><span>5203</span><span> ]
</span><span>5204</span><span>public</span><span>bool</span><span> VirtualMode
</span><span>5205</span><span> {
</span><span>5206</span><span>get</span><span>5207</span><span> {
</span><span>5208</span><span>return</span><span>this</span><span>.dataGridViewState1[DATAGRIDVIEWSTATE1_virtualMode];
</span><span>5209</span><span> }
</span><span>5210</span><span>set</span><span>5211</span><span> {
</span><span>5212</span><span>if</span> (<span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_virtualMode] !=<span> value)
</span><span>5213</span><span> {
</span><span>5214</span><span>this</span>.dataGridViewState1[DATAGRIDVIEWSTATE1_virtualMode] =<span> value;
</span><span>5215</span><span> InvalidateRowHeights();
</span><span>5216</span><span>//</span><span>OnVirtualModeChanged(EventArgs.Empty);</span><span>5217</span><span> }
</span><span>5218</span><span> }
</span><span>5219</span><span> }
</span><span>5220</span><span>5221</span><span>private</span><span>bool</span><span> VisibleCellExists
</span><span>5222</span><span> {
</span><span>5223</span><span>get</span><span>5224</span><span> {
</span><span>5225</span><span>if</span> (<span>null</span> == <span>this</span><span>.Columns.GetFirstColumn(DataGridViewElementStates.Visible))
</span><span>5226</span><span> {
</span><span>5227</span><span>return</span><span>false</span><span>;
</span><span>5228</span><span> }
</span><span>5229</span><span>return</span> -<span>1</span> != <span>this</span><span>.Rows.GetFirstRow(DataGridViewElementStates.Visible);
</span><span>5230</span><span> }
</span><span>5231</span><span> }
</span><span>5232</span><span>5233</span><span>//</span><span> Events start here</span><span>5234</span><span>5235</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.AutoSizeColumnModeChanged"]/*‘ /></span><span>5236</span><span> [
</span><span>5237</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5238</span><span> SRDescription(SR.DataGridViewAutoSizeColumnModeChangedDescr)
</span><span>5239</span><span> ]
</span><span>5240</span><span>public</span><span>event</span><span> DataGridViewAutoSizeColumnModeEventHandler AutoSizeColumnModeChanged
</span><span>5241</span><span> {
</span><span>5242</span><span> add
</span><span>5243</span><span> {
</span><span>5244</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWAUTOSIZECOLUMNMODECHANGED, value);
</span><span>5245</span><span> }
</span><span>5246</span><span> remove
</span><span>5247</span><span> {
</span><span>5248</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWAUTOSIZECOLUMNMODECHANGED, value);
</span><span>5249</span><span> }
</span><span>5250</span><span> }
</span><span>5251</span><span>5252</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CancelRowEdit"]/*‘ /></span><span>5253</span><span> [
</span><span>5254</span><span> SRCategory(SR.CatAction),
</span><span>5255</span><span> SRDescription(SR.DataGridView_CancelRowEditDescr)
</span><span>5256</span><span> ]
</span><span>5257</span><span>public</span><span>event</span><span> QuestionEventHandler CancelRowEdit
</span><span>5258</span><span> {
</span><span>5259</span><span> add
</span><span>5260</span><span> {
</span><span>5261</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCANCELROWEDIT, value);
</span><span>5262</span><span> }
</span><span>5263</span><span> remove
</span><span>5264</span><span> {
</span><span>5265</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCANCELROWEDIT, value);
</span><span>5266</span><span> }
</span><span>5267</span><span> }
</span><span>5268</span><span>5269</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellBeginEdit"]/*‘ /></span><span>5270</span><span> [
</span><span>5271</span><span> SRCategory(SR.CatData),
</span><span>5272</span><span> SRDescription(SR.DataGridView_CellBeginEditDescr)
</span><span>5273</span><span> ]
</span><span>5274</span><span>public</span><span>event</span><span> DataGridViewCellCancelEventHandler CellBeginEdit
</span><span>5275</span><span> {
</span><span>5276</span><span> add
</span><span>5277</span><span> {
</span><span>5278</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLBEGINEDIT, value);
</span><span>5279</span><span> }
</span><span>5280</span><span> remove
</span><span>5281</span><span> {
</span><span>5282</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLBEGINEDIT, value);
</span><span>5283</span><span> }
</span><span>5284</span><span> }
</span><span>5285</span><span>5286</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellClick"]/*‘ /></span><span>5287</span><span> [
</span><span>5288</span><span> SRCategory(SR.CatMouse),
</span><span>5289</span><span> SRDescription(SR.DataGridView_CellClickDescr)
</span><span>5290</span><span> ]
</span><span>5291</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellClick
</span><span>5292</span><span> {
</span><span>5293</span><span> add
</span><span>5294</span><span> {
</span><span>5295</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLCLICK, value);
</span><span>5296</span><span> }
</span><span>5297</span><span> remove
</span><span>5298</span><span> {
</span><span>5299</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLCLICK, value);
</span><span>5300</span><span> }
</span><span>5301</span><span> }
</span><span>5302</span><span>5303</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellContentClick"]/*‘ /></span><span>5304</span><span> [
</span><span>5305</span><span> SRCategory(SR.CatMouse),
</span><span>5306</span><span> SRDescription(SR.DataGridView_CellContentClick)
</span><span>5307</span><span> ]
</span><span>5308</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellContentClick
</span><span>5309</span><span> {
</span><span>5310</span><span> add
</span><span>5311</span><span> {
</span><span>5312</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLCONTENTCLICK, value);
</span><span>5313</span><span> }
</span><span>5314</span><span> remove
</span><span>5315</span><span> {
</span><span>5316</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLCONTENTCLICK, value);
</span><span>5317</span><span> }
</span><span>5318</span><span> }
</span><span>5319</span><span>5320</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellContentDoubleClick"]/*‘ /></span><span>5321</span><span> [
</span><span>5322</span><span> SRCategory(SR.CatMouse),
</span><span>5323</span><span> SRDescription(SR.DataGridView_CellContentDoubleClick)
</span><span>5324</span><span> ]
</span><span>5325</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellContentDoubleClick
</span><span>5326</span><span> {
</span><span>5327</span><span> add
</span><span>5328</span><span> {
</span><span>5329</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLCONTENTDOUBLECLICK, value);
</span><span>5330</span><span> }
</span><span>5331</span><span> remove
</span><span>5332</span><span> {
</span><span>5333</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLCONTENTDOUBLECLICK, value);
</span><span>5334</span><span> }
</span><span>5335</span><span> }
</span><span>5336</span><span>5337</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellContextMenuStripChanged"]/*‘ /></span><span>5338</span><span> [
</span><span>5339</span><span> SRCategory(SR.CatAction),
</span><span>5340</span><span> SRDescription(SR.DataGridView_CellContextMenuStripChanged),
</span><span>5341</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>5342</span><span> ]
</span><span>5343</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellContextMenuStripChanged
</span><span>5344</span><span> {
</span><span>5345</span><span> add
</span><span>5346</span><span> {
</span><span>5347</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLCONTEXTMENUSTRIPCHANGED, value);
</span><span>5348</span><span> }
</span><span>5349</span><span> remove
</span><span>5350</span><span> {
</span><span>5351</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLCONTEXTMENUSTRIPCHANGED, value);
</span><span>5352</span><span> }
</span><span>5353</span><span> }
</span><span>5354</span><span>5355</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellContextMenuStripNeeded"]/*‘ /></span><span>5356</span><span> [
</span><span>5357</span><span> SRCategory(SR.CatBehavior),
</span><span>5358</span><span> SRDescription(SR.DataGridView_CellContextMenuStripNeeded),
</span><span>5359</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>5360</span><span> ]
</span><span>5361</span><span>public</span><span>event</span><span> DataGridViewCellContextMenuStripNeededEventHandler CellContextMenuStripNeeded
</span><span>5362</span><span> {
</span><span>5363</span><span> add
</span><span>5364</span><span> {
</span><span>5365</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLCONTEXTMENUSTRIPNEEDED, value);
</span><span>5366</span><span> }
</span><span>5367</span><span> remove
</span><span>5368</span><span> {
</span><span>5369</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLCONTEXTMENUSTRIPNEEDED, value);
</span><span>5370</span><span> }
</span><span>5371</span><span> }
</span><span>5372</span><span>5373</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellDoubleClick"]/*‘ /></span><span>5374</span><span> [
</span><span>5375</span><span> SRCategory(SR.CatMouse),
</span><span>5376</span><span> SRDescription(SR.DataGridView_CellDoubleClickDescr)
</span><span>5377</span><span> ]
</span><span>5378</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellDoubleClick
</span><span>5379</span><span> {
</span><span>5380</span><span> add
</span><span>5381</span><span> {
</span><span>5382</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLDOUBLECLICK, value);
</span><span>5383</span><span> }
</span><span>5384</span><span> remove
</span><span>5385</span><span> {
</span><span>5386</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLDOUBLECLICK, value);
</span><span>5387</span><span> }
</span><span>5388</span><span> }
</span><span>5389</span><span>5390</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellEndEdit"]/*‘ /></span><span>5391</span><span> [
</span><span>5392</span><span> SRCategory(SR.CatData),
</span><span>5393</span><span> SRDescription(SR.DataGridView_CellEndEditDescr)
</span><span>5394</span><span> ]
</span><span>5395</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellEndEdit
</span><span>5396</span><span> {
</span><span>5397</span><span> add
</span><span>5398</span><span> {
</span><span>5399</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLENDEDIT, value);
</span><span>5400</span><span> }
</span><span>5401</span><span> remove
</span><span>5402</span><span> {
</span><span>5403</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLENDEDIT, value);
</span><span>5404</span><span> }
</span><span>5405</span><span> }
</span><span>5406</span><span>5407</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellEnter"]/*‘ /></span><span>5408</span><span> [
</span><span>5409</span><span> SRCategory(SR.CatFocus),
</span><span>5410</span><span> SRDescription(SR.DataGridView_CellEnterDescr)
</span><span>5411</span><span> ]
</span><span>5412</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellEnter
</span><span>5413</span><span> {
</span><span>5414</span><span> add
</span><span>5415</span><span> {
</span><span>5416</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLENTER, value);
</span><span>5417</span><span> }
</span><span>5418</span><span> remove
</span><span>5419</span><span> {
</span><span>5420</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLENTER, value);
</span><span>5421</span><span> }
</span><span>5422</span><span> }
</span><span>5423</span><span>5424</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellErrorTextChanged"]/*‘ /></span><span>5425</span><span> [
</span><span>5426</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5427</span><span> SRDescription(SR.DataGridView_CellErrorTextChangedDescr)
</span><span>5428</span><span> ]
</span><span>5429</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellErrorTextChanged
</span><span>5430</span><span> {
</span><span>5431</span><span> add
</span><span>5432</span><span> {
</span><span>5433</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLERRORTEXTCHANGED, value);
</span><span>5434</span><span> }
</span><span>5435</span><span> remove
</span><span>5436</span><span> {
</span><span>5437</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLERRORTEXTCHANGED, value);
</span><span>5438</span><span> }
</span><span>5439</span><span> }
</span><span>5440</span><span>5441</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellErrorTextNeeded"]/*‘ /></span><span>5442</span><span> [
</span><span>5443</span><span> SRCategory(SR.CatData),
</span><span>5444</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>5445</span><span> SRDescription(SR.DataGridView_CellErrorTextNeededDescr)
</span><span>5446</span><span> ]
</span><span>5447</span><span>public</span><span>event</span><span> DataGridViewCellErrorTextNeededEventHandler CellErrorTextNeeded
</span><span>5448</span><span> {
</span><span>5449</span><span> add
</span><span>5450</span><span> {
</span><span>5451</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLERRORTEXTNEEDED, value);
</span><span>5452</span><span> }
</span><span>5453</span><span> remove
</span><span>5454</span><span> {
</span><span>5455</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLERRORTEXTNEEDED, value);
</span><span>5456</span><span> }
</span><span>5457</span><span> }
</span><span>5458</span><span>5459</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellFormatting"]/*‘ /></span><span>5460</span><span> [
</span><span>5461</span><span> SRCategory(SR.CatDisplay),
</span><span>5462</span><span> SRDescription(SR.DataGridView_CellFormattingDescr)
</span><span>5463</span><span> ]
</span><span>5464</span><span>public</span><span>event</span><span> DataGridViewCellFormattingEventHandler CellFormatting
</span><span>5465</span><span> {
</span><span>5466</span><span> add
</span><span>5467</span><span> {
</span><span>5468</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLFORMATTING, value);
</span><span>5469</span><span> }
</span><span>5470</span><span> remove
</span><span>5471</span><span> {
</span><span>5472</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLFORMATTING, value);
</span><span>5473</span><span> }
</span><span>5474</span><span> }
</span><span>5475</span><span>5476</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellLeave"]/*‘ /></span><span>5477</span><span> [
</span><span>5478</span><span> SRCategory(SR.CatFocus),
</span><span>5479</span><span> SRDescription(SR.DataGridView_CellLeaveDescr)
</span><span>5480</span><span> ]
</span><span>5481</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellLeave
</span><span>5482</span><span> {
</span><span>5483</span><span> add
</span><span>5484</span><span> {
</span><span>5485</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLLEAVE, value);
</span><span>5486</span><span> }
</span><span>5487</span><span> remove
</span><span>5488</span><span> {
</span><span>5489</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLLEAVE, value);
</span><span>5490</span><span> }
</span><span>5491</span><span> }
</span><span>5492</span><span>5493</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseClick"]/*‘ /></span><span>5494</span><span> [
</span><span>5495</span><span> SRCategory(SR.CatMouse),
</span><span>5496</span><span> SRDescription(SR.DataGridView_CellMouseClickDescr)
</span><span>5497</span><span> ]
</span><span>5498</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler CellMouseClick
</span><span>5499</span><span> {
</span><span>5500</span><span> add
</span><span>5501</span><span> {
</span><span>5502</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSECLICK, value);
</span><span>5503</span><span> }
</span><span>5504</span><span> remove
</span><span>5505</span><span> {
</span><span>5506</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSECLICK, value);
</span><span>5507</span><span> }
</span><span>5508</span><span> }
</span><span>5509</span><span>5510</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseDoubleClick"]/*‘ /></span><span>5511</span><span> [
</span><span>5512</span><span> SRCategory(SR.CatMouse),
</span><span>5513</span><span> SRDescription(SR.DataGridView_CellMouseDoubleClickDescr)
</span><span>5514</span><span> ]
</span><span>5515</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler CellMouseDoubleClick
</span><span>5516</span><span> {
</span><span>5517</span><span> add
</span><span>5518</span><span> {
</span><span>5519</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSEDOUBLECLICK, value);
</span><span>5520</span><span> }
</span><span>5521</span><span> remove
</span><span>5522</span><span> {
</span><span>5523</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSEDOUBLECLICK, value);
</span><span>5524</span><span> }
</span><span>5525</span><span> }
</span><span>5526</span><span>5527</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseDown"]/*‘ /></span><span>5528</span><span> [
</span><span>5529</span><span> SRCategory(SR.CatMouse),
</span><span>5530</span><span> SRDescription(SR.DataGridView_CellMouseDownDescr)
</span><span>5531</span><span> ]
</span><span>5532</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler CellMouseDown
</span><span>5533</span><span> {
</span><span>5534</span><span> add
</span><span>5535</span><span> {
</span><span>5536</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSEDOWN, value);
</span><span>5537</span><span> }
</span><span>5538</span><span> remove
</span><span>5539</span><span> {
</span><span>5540</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSEDOWN, value);
</span><span>5541</span><span> }
</span><span>5542</span><span> }
</span><span>5543</span><span>5544</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseEnter"]/*‘ /></span><span>5545</span><span> [
</span><span>5546</span><span> SRCategory(SR.CatMouse),
</span><span>5547</span><span> SRDescription(SR.DataGridView_CellMouseEnterDescr)
</span><span>5548</span><span> ]
</span><span>5549</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellMouseEnter
</span><span>5550</span><span> {
</span><span>5551</span><span> add
</span><span>5552</span><span> {
</span><span>5553</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSEENTER, value);
</span><span>5554</span><span> }
</span><span>5555</span><span> remove
</span><span>5556</span><span> {
</span><span>5557</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSEENTER, value);
</span><span>5558</span><span> }
</span><span>5559</span><span> }
</span><span>5560</span><span>5561</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseLeave"]/*‘ /></span><span>5562</span><span> [
</span><span>5563</span><span> SRCategory(SR.CatMouse),
</span><span>5564</span><span> SRDescription(SR.DataGridView_CellMouseLeaveDescr)
</span><span>5565</span><span> ]
</span><span>5566</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellMouseLeave
</span><span>5567</span><span> {
</span><span>5568</span><span> add
</span><span>5569</span><span> {
</span><span>5570</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSELEAVE, value);
</span><span>5571</span><span> }
</span><span>5572</span><span> remove
</span><span>5573</span><span> {
</span><span>5574</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSELEAVE, value);
</span><span>5575</span><span> }
</span><span>5576</span><span> }
</span><span>5577</span><span>5578</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseMove"]/*‘ /></span><span>5579</span><span> [
</span><span>5580</span><span> SRCategory(SR.CatMouse),
</span><span>5581</span><span> SRDescription(SR.DataGridView_CellMouseMoveDescr)
</span><span>5582</span><span> ]
</span><span>5583</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler CellMouseMove
</span><span>5584</span><span> {
</span><span>5585</span><span> add
</span><span>5586</span><span> {
</span><span>5587</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSEMOVE, value);
</span><span>5588</span><span> }
</span><span>5589</span><span> remove
</span><span>5590</span><span> {
</span><span>5591</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSEMOVE, value);
</span><span>5592</span><span> }
</span><span>5593</span><span> }
</span><span>5594</span><span>5595</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellMouseUp"]/*‘ /></span><span>5596</span><span> [
</span><span>5597</span><span> SRCategory(SR.CatMouse),
</span><span>5598</span><span> SRDescription(SR.DataGridView_CellMouseUpDescr)
</span><span>5599</span><span> ]
</span><span>5600</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler CellMouseUp
</span><span>5601</span><span> {
</span><span>5602</span><span> add
</span><span>5603</span><span> {
</span><span>5604</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLMOUSEUP, value);
</span><span>5605</span><span> }
</span><span>5606</span><span> remove
</span><span>5607</span><span> {
</span><span>5608</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLMOUSEUP, value);
</span><span>5609</span><span> }
</span><span>5610</span><span> }
</span><span>5611</span><span>5612</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellPainting"]/*‘ /></span><span>5613</span><span> [
</span><span>5614</span><span> SRCategory(SR.CatDisplay),
</span><span>5615</span><span> SRDescription(SR.DataGridView_CellPaintingDescr)
</span><span>5616</span><span> ]
</span><span>5617</span><span>public</span><span>event</span><span> DataGridViewCellPaintingEventHandler CellPainting
</span><span>5618</span><span> {
</span><span>5619</span><span> add
</span><span>5620</span><span> {
</span><span>5621</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLPAINTING, value);
</span><span>5622</span><span> }
</span><span>5623</span><span> remove
</span><span>5624</span><span> {
</span><span>5625</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLPAINTING, value);
</span><span>5626</span><span> }
</span><span>5627</span><span> }
</span><span>5628</span><span>5629</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellParsing"]/*‘ /></span><span>5630</span><span> [
</span><span>5631</span><span> SRCategory(SR.CatDisplay),
</span><span>5632</span><span> SRDescription(SR.DataGridView_CellParsingDescr)
</span><span>5633</span><span> ]
</span><span>5634</span><span>public</span><span>event</span><span> DataGridViewCellParsingEventHandler CellParsing
</span><span>5635</span><span> {
</span><span>5636</span><span> add
</span><span>5637</span><span> {
</span><span>5638</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLPARSING, value);
</span><span>5639</span><span> }
</span><span>5640</span><span> remove
</span><span>5641</span><span> {
</span><span>5642</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLPARSING, value);
</span><span>5643</span><span> }
</span><span>5644</span><span> }
</span><span>5645</span><span>5646</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellStateChanged"]/*‘ /></span><span>5647</span><span> [
</span><span>5648</span><span> SRCategory(SR.CatBehavior),
</span><span>5649</span><span> SRDescription(SR.DataGridView_CellStateChangedDescr)
</span><span>5650</span><span> ]
</span><span>5651</span><span>public</span><span>event</span><span> DataGridViewCellStateChangedEventHandler CellStateChanged
</span><span>5652</span><span> {
</span><span>5653</span><span> add
</span><span>5654</span><span> {
</span><span>5655</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLSTATECHANGED, value);
</span><span>5656</span><span> }
</span><span>5657</span><span> remove
</span><span>5658</span><span> {
</span><span>5659</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLSTATECHANGED, value);
</span><span>5660</span><span> }
</span><span>5661</span><span> }
</span><span>5662</span><span>5663</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellStyleChanged"]/*‘ /></span><span>5664</span><span> [
</span><span>5665</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5666</span><span> SRDescription(SR.DataGridView_CellStyleChangedDescr)
</span><span>5667</span><span> ]
</span><span>5668</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellStyleChanged
</span><span>5669</span><span> {
</span><span>5670</span><span> add
</span><span>5671</span><span> {
</span><span>5672</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLSTYLECHANGED, value);
</span><span>5673</span><span> }
</span><span>5674</span><span> remove
</span><span>5675</span><span> {
</span><span>5676</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLSTYLECHANGED, value);
</span><span>5677</span><span> }
</span><span>5678</span><span> }
</span><span>5679</span><span>5680</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellStyleContentChanged"]/*‘ /></span><span>5681</span><span> [
</span><span>5682</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5683</span><span> SRDescription(SR.DataGridView_CellStyleContentChangedDescr)
</span><span>5684</span><span> ]
</span><span>5685</span><span>public</span><span>event</span><span> DataGridViewCellStyleContentChangedEventHandler CellStyleContentChanged
</span><span>5686</span><span> {
</span><span>5687</span><span> add
</span><span>5688</span><span> {
</span><span>5689</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLSTYLECONTENTCHANGED, value);
</span><span>5690</span><span> }
</span><span>5691</span><span> remove
</span><span>5692</span><span> {
</span><span>5693</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLSTYLECONTENTCHANGED, value);
</span><span>5694</span><span> }
</span><span>5695</span><span> }
</span><span>5696</span><span>5697</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellToolTipTextChanged"]/*‘ /></span><span>5698</span><span> [
</span><span>5699</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5700</span><span> SRDescription(SR.DataGridView_CellToolTipTextChangedDescr)
</span><span>5701</span><span> ]
</span><span>5702</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellToolTipTextChanged
</span><span>5703</span><span> {
</span><span>5704</span><span> add
</span><span>5705</span><span> {
</span><span>5706</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLTOOLTIPTEXTCHANGED, value);
</span><span>5707</span><span> }
</span><span>5708</span><span> remove
</span><span>5709</span><span> {
</span><span>5710</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLTOOLTIPTEXTCHANGED, value);
</span><span>5711</span><span> }
</span><span>5712</span><span> }
</span><span>5713</span><span>5714</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellToolTipTextNeeded"]/*‘ /></span><span>5715</span><span> [
</span><span>5716</span><span> SRCategory(SR.CatBehavior),
</span><span>5717</span><span> SRDescription(SR.DataGridView_CellToolTipTextNeededDescr),
</span><span>5718</span><span> EditorBrowsable(EditorBrowsableState.Advanced)
</span><span>5719</span><span> ]
</span><span>5720</span><span>public</span><span>event</span><span> DataGridViewCellToolTipTextNeededEventHandler CellToolTipTextNeeded
</span><span>5721</span><span> {
</span><span>5722</span><span> add
</span><span>5723</span><span> {
</span><span>5724</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLTOOLTIPTEXTNEEDED, value);
</span><span>5725</span><span> }
</span><span>5726</span><span> remove
</span><span>5727</span><span> {
</span><span>5728</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLTOOLTIPTEXTNEEDED, value);
</span><span>5729</span><span> }
</span><span>5730</span><span> }
</span><span>5731</span><span>5732</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellValidated"]/*‘ /></span><span>5733</span><span> [
</span><span>5734</span><span> SRCategory(SR.CatFocus),
</span><span>5735</span><span> SRDescription(SR.DataGridView_CellValidatedDescr)
</span><span>5736</span><span> ]
</span><span>5737</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellValidated
</span><span>5738</span><span> {
</span><span>5739</span><span> add
</span><span>5740</span><span> {
</span><span>5741</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLVALIDATED, value);
</span><span>5742</span><span> }
</span><span>5743</span><span> remove
</span><span>5744</span><span> {
</span><span>5745</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLVALIDATED, value);
</span><span>5746</span><span> }
</span><span>5747</span><span> }
</span><span>5748</span><span>5749</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellValidating"]/*‘ /></span><span>5750</span><span> [
</span><span>5751</span><span> SRCategory(SR.CatFocus),
</span><span>5752</span><span> SRDescription(SR.DataGridView_CellValidatingDescr)
</span><span>5753</span><span> ]
</span><span>5754</span><span>public</span><span>event</span><span> DataGridViewCellValidatingEventHandler CellValidating
</span><span>5755</span><span> {
</span><span>5756</span><span> add
</span><span>5757</span><span> {
</span><span>5758</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLVALIDATING, value);
</span><span>5759</span><span> }
</span><span>5760</span><span> remove
</span><span>5761</span><span> {
</span><span>5762</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLVALIDATING, value);
</span><span>5763</span><span> }
</span><span>5764</span><span> }
</span><span>5765</span><span>5766</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellValueChanged"]/*‘ /></span><span>5767</span><span> [
</span><span>5768</span><span> SRCategory(SR.CatAction),
</span><span>5769</span><span> SRDescription(SR.DataGridView_CellValueChangedDescr)
</span><span>5770</span><span> ]
</span><span>5771</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler CellValueChanged
</span><span>5772</span><span> {
</span><span>5773</span><span> add
</span><span>5774</span><span> {
</span><span>5775</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLVALUECHANGED, value);
</span><span>5776</span><span> }
</span><span>5777</span><span> remove
</span><span>5778</span><span> {
</span><span>5779</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLVALUECHANGED, value);
</span><span>5780</span><span> }
</span><span>5781</span><span> }
</span><span>5782</span><span>5783</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellValueNeeded"]/*‘ /></span><span>5784</span><span> [
</span><span>5785</span><span> SRCategory(SR.CatData),
</span><span>5786</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>5787</span><span> SRDescription(SR.DataGridView_CellValueNeededDescr)
</span><span>5788</span><span> ]
</span><span>5789</span><span>public</span><span>event</span><span> DataGridViewCellValueEventHandler CellValueNeeded
</span><span>5790</span><span> {
</span><span>5791</span><span> add
</span><span>5792</span><span> {
</span><span>5793</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLVALUENEEDED, value);
</span><span>5794</span><span> }
</span><span>5795</span><span> remove
</span><span>5796</span><span> {
</span><span>5797</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLVALUENEEDED, value);
</span><span>5798</span><span> }
</span><span>5799</span><span> }
</span><span>5800</span><span>5801</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CellValuePushed"]/*‘ /></span><span>5802</span><span> [
</span><span>5803</span><span> SRCategory(SR.CatData),
</span><span>5804</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>5805</span><span> SRDescription(SR.DataGridView_CellValuePushedDescr)
</span><span>5806</span><span> ]
</span><span>5807</span><span>public</span><span>event</span><span> DataGridViewCellValueEventHandler CellValuePushed
</span><span>5808</span><span> {
</span><span>5809</span><span> add
</span><span>5810</span><span> {
</span><span>5811</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCELLVALUEPUSHED, value);
</span><span>5812</span><span> }
</span><span>5813</span><span> remove
</span><span>5814</span><span> {
</span><span>5815</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCELLVALUEPUSHED, value);
</span><span>5816</span><span> }
</span><span>5817</span><span> }
</span><span>5818</span><span>5819</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnAdded"]/*‘ /></span><span>5820</span><span> [
</span><span>5821</span><span> SRCategory(SR.CatAction),
</span><span>5822</span><span> SRDescription(SR.DataGridView_ColumnAddedDescr)
</span><span>5823</span><span> ]
</span><span>5824</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnAdded
</span><span>5825</span><span> {
</span><span>5826</span><span> add
</span><span>5827</span><span> {
</span><span>5828</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNADDED, value);
</span><span>5829</span><span> }
</span><span>5830</span><span> remove
</span><span>5831</span><span> {
</span><span>5832</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNADDED, value);
</span><span>5833</span><span> }
</span><span>5834</span><span> }
</span><span>5835</span><span>5836</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnContextMenuStripChanged"]/*‘ /></span><span>5837</span><span> [
</span><span>5838</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5839</span><span> SRDescription(SR.DataGridView_ColumnContextMenuStripChangedDescr)
</span><span>5840</span><span> ]
</span><span>5841</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnContextMenuStripChanged
</span><span>5842</span><span> {
</span><span>5843</span><span> add
</span><span>5844</span><span> {
</span><span>5845</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNCONTEXTMENUSTRIPCHANGED, value);
</span><span>5846</span><span> }
</span><span>5847</span><span> remove
</span><span>5848</span><span> {
</span><span>5849</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNCONTEXTMENUSTRIPCHANGED, value);
</span><span>5850</span><span> }
</span><span>5851</span><span> }
</span><span>5852</span><span>5853</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnDataPropertyNameChanged"]/*‘ /></span><span>5854</span><span> [
</span><span>5855</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5856</span><span> SRDescription(SR.DataGridView_ColumnDataPropertyNameChangedDescr)
</span><span>5857</span><span> ]
</span><span>5858</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnDataPropertyNameChanged
</span><span>5859</span><span> {
</span><span>5860</span><span> add
</span><span>5861</span><span> {
</span><span>5862</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNDATAPROPERTYNAMECHANGED, value);
</span><span>5863</span><span> }
</span><span>5864</span><span> remove
</span><span>5865</span><span> {
</span><span>5866</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNDATAPROPERTYNAMECHANGED, value);
</span><span>5867</span><span> }
</span><span>5868</span><span> }
</span><span>5869</span><span>5870</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnDefaultCellStyleChanged"]/*‘ /></span><span>5871</span><span> [
</span><span>5872</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5873</span><span> SRDescription(SR.DataGridView_ColumnDefaultCellStyleChangedDescr)
</span><span>5874</span><span> ]
</span><span>5875</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnDefaultCellStyleChanged
</span><span>5876</span><span> {
</span><span>5877</span><span> add
</span><span>5878</span><span> {
</span><span>5879</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNDEFAULTCELLSTYLECHANGED, value);
</span><span>5880</span><span> }
</span><span>5881</span><span> remove
</span><span>5882</span><span> {
</span><span>5883</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNDEFAULTCELLSTYLECHANGED, value);
</span><span>5884</span><span> }
</span><span>5885</span><span> }
</span><span>5886</span><span>5887</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnDisplayIndexChanged"]/*‘ /></span><span>5888</span><span> [
</span><span>5889</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5890</span><span> SRDescription(SR.DataGridView_ColumnDisplayIndexChangedDescr)
</span><span>5891</span><span> ]
</span><span>5892</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnDisplayIndexChanged
</span><span>5893</span><span> {
</span><span>5894</span><span> add
</span><span>5895</span><span> {
</span><span>5896</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNDISPLAYINDEXCHANGED, value);
</span><span>5897</span><span> }
</span><span>5898</span><span> remove
</span><span>5899</span><span> {
</span><span>5900</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNDISPLAYINDEXCHANGED, value);
</span><span>5901</span><span> }
</span><span>5902</span><span> }
</span><span>5903</span><span>5904</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnDividerDoubleClick"]/*‘ /></span><span>5905</span><span> [
</span><span>5906</span><span> SRCategory(SR.CatMouse),
</span><span>5907</span><span> SRDescription(SR.DataGridView_ColumnDividerDoubleClickDescr)
</span><span>5908</span><span> ]
</span><span>5909</span><span>public</span><span>event</span><span> DataGridViewColumnDividerDoubleClickEventHandler ColumnDividerDoubleClick
</span><span>5910</span><span> {
</span><span>5911</span><span> add
</span><span>5912</span><span> {
</span><span>5913</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNDIVIDERDOUBLECLICK, value);
</span><span>5914</span><span> }
</span><span>5915</span><span> remove
</span><span>5916</span><span> {
</span><span>5917</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNDIVIDERDOUBLECLICK, value);
</span><span>5918</span><span> }
</span><span>5919</span><span> }
</span><span>5920</span><span>5921</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnDividerWidthChanged"]/*‘ /></span><span>5922</span><span> [
</span><span>5923</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5924</span><span> SRDescription(SR.DataGridView_ColumnDividerWidthChangedDescr)
</span><span>5925</span><span> ]
</span><span>5926</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnDividerWidthChanged
</span><span>5927</span><span> {
</span><span>5928</span><span> add
</span><span>5929</span><span> {
</span><span>5930</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNDIVIDERWIDTHCHANGED, value);
</span><span>5931</span><span> }
</span><span>5932</span><span> remove
</span><span>5933</span><span> {
</span><span>5934</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNDIVIDERWIDTHCHANGED, value);
</span><span>5935</span><span> }
</span><span>5936</span><span> }
</span><span>5937</span><span>5938</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeaderMouseClick"]/*‘ /></span><span>5939</span><span> [
</span><span>5940</span><span> SRCategory(SR.CatMouse),
</span><span>5941</span><span> SRDescription(SR.DataGridView_ColumnHeaderMouseClickDescr)
</span><span>5942</span><span> ]
</span><span>5943</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler ColumnHeaderMouseClick
</span><span>5944</span><span> {
</span><span>5945</span><span> add
</span><span>5946</span><span> {
</span><span>5947</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERMOUSECLICK, value);
</span><span>5948</span><span> }
</span><span>5949</span><span> remove
</span><span>5950</span><span> {
</span><span>5951</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERMOUSECLICK, value);
</span><span>5952</span><span> }
</span><span>5953</span><span> }
</span><span>5954</span><span>5955</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeaderMouseDoubleClick"]/*‘ /></span><span>5956</span><span> [
</span><span>5957</span><span> SRCategory(SR.CatMouse),
</span><span>5958</span><span> SRDescription(SR.DataGridView_ColumnHeaderMouseDoubleClickDescr)
</span><span>5959</span><span> ]
</span><span>5960</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler ColumnHeaderMouseDoubleClick
</span><span>5961</span><span> {
</span><span>5962</span><span> add
</span><span>5963</span><span> {
</span><span>5964</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERMOUSEDOUBLECLICK, value);
</span><span>5965</span><span> }
</span><span>5966</span><span> remove
</span><span>5967</span><span> {
</span><span>5968</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERMOUSEDOUBLECLICK, value);
</span><span>5969</span><span> }
</span><span>5970</span><span> }
</span><span>5971</span><span>5972</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnHeaderCellChanged"]/*‘ /></span><span>5973</span><span> [
</span><span>5974</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5975</span><span> SRDescription(SR.DataGridView_ColumnHeaderCellChangedDescr)
</span><span>5976</span><span> ]
</span><span>5977</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnHeaderCellChanged
</span><span>5978</span><span> {
</span><span>5979</span><span> add
</span><span>5980</span><span> {
</span><span>5981</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERCELLCHANGED, value);
</span><span>5982</span><span> }
</span><span>5983</span><span> remove
</span><span>5984</span><span> {
</span><span>5985</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNHEADERCELLCHANGED, value);
</span><span>5986</span><span> }
</span><span>5987</span><span> }
</span><span>5988</span><span>5989</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnMinimumWidthChanged"]/*‘ /></span><span>5990</span><span> [
</span><span>5991</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>5992</span><span> SRDescription(SR.DataGridView_ColumnMinimumWidthChangedDescr)
</span><span>5993</span><span> ]
</span><span>5994</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnMinimumWidthChanged
</span><span>5995</span><span> {
</span><span>5996</span><span> add
</span><span>5997</span><span> {
</span><span>5998</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNMINIMUMWIDTHCHANGED, value);
</span><span>5999</span><span> }
</span><span>6000</span><span> remove
</span><span>6001</span><span> {
</span><span>6002</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNMINIMUMWIDTHCHANGED, value);
</span><span>6003</span><span> }
</span><span>6004</span><span> }
</span><span>6005</span><span>6006</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnNameChanged"]/*‘ /></span><span>6007</span><span> [
</span><span>6008</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6009</span><span> SRDescription(SR.DataGridView_ColumnNameChangedDescr)
</span><span>6010</span><span> ]
</span><span>6011</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnNameChanged
</span><span>6012</span><span> {
</span><span>6013</span><span> add
</span><span>6014</span><span> {
</span><span>6015</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNNAMECHANGED, value);
</span><span>6016</span><span> }
</span><span>6017</span><span> remove
</span><span>6018</span><span> {
</span><span>6019</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNNAMECHANGED, value);
</span><span>6020</span><span> }
</span><span>6021</span><span> }
</span><span>6022</span><span>6023</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnRemoved"]/*‘ /></span><span>6024</span><span> [
</span><span>6025</span><span> SRCategory(SR.CatAction),
</span><span>6026</span><span> SRDescription(SR.DataGridView_ColumnRemovedDescr)
</span><span>6027</span><span> ]
</span><span>6028</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnRemoved
</span><span>6029</span><span> {
</span><span>6030</span><span> add
</span><span>6031</span><span> {
</span><span>6032</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNREMOVED, value);
</span><span>6033</span><span> }
</span><span>6034</span><span> remove
</span><span>6035</span><span> {
</span><span>6036</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNREMOVED, value);
</span><span>6037</span><span> }
</span><span>6038</span><span> }
</span><span>6039</span><span>6040</span><span>/*</span><span>/// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnsDefaultCellStyleChanged"]/*‘ />
</span><span>6041</span><span> /// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnsDefaultCellStyleChanged"]/*‘ />
</span><span>6042</span><span> public event EventHandler ColumnsDefaultCellStyleChanged
</span><span>6043</span><span> {
</span><span>6044</span><span> add
</span><span>6045</span><span> {
</span><span>6046</span><span> this.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNSDEFAULTCELLSTYLECHANGED, value);
</span><span>6047</span><span> }
</span><span>6048</span><span> remove
</span><span>6049</span><span> {
</span><span>6050</span><span> this.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNSDEFAULTCELLSTYLECHANGED, value);
</span><span>6051</span><span> }
</span><span>6052</span><span> }</span><span>*/</span><span>6053</span><span>6054</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnSortModeChanged"]/*‘ /></span><span>6055</span><span> [
</span><span>6056</span><span> SRCategory(SR.CatBehavior),
</span><span>6057</span><span> SRDescription(SR.DataGridViewColumnSortModeChangedDescr)
</span><span>6058</span><span> ]
</span><span>6059</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnSortModeChanged
</span><span>6060</span><span> {
</span><span>6061</span><span> add
</span><span>6062</span><span> {
</span><span>6063</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNSORTMODECHANGED, value);
</span><span>6064</span><span> }
</span><span>6065</span><span> remove
</span><span>6066</span><span> {
</span><span>6067</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNSORTMODECHANGED, value);
</span><span>6068</span><span> }
</span><span>6069</span><span> }
</span><span>6070</span><span>6071</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnStateChanged"]/*‘ /></span><span>6072</span><span> [
</span><span>6073</span><span> SRCategory(SR.CatBehavior),
</span><span>6074</span><span> SRDescription(SR.DataGridView_ColumnStateChangedDescr)
</span><span>6075</span><span> ]
</span><span>6076</span><span>public</span><span>event</span><span> DataGridViewColumnStateChangedEventHandler ColumnStateChanged
</span><span>6077</span><span> {
</span><span>6078</span><span> add
</span><span>6079</span><span> {
</span><span>6080</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNSTATECHANGED, value);
</span><span>6081</span><span> }
</span><span>6082</span><span> remove
</span><span>6083</span><span> {
</span><span>6084</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNSTATECHANGED, value);
</span><span>6085</span><span> }
</span><span>6086</span><span> }
</span><span>6087</span><span>6088</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnToolTipTextChanged"]/*‘ /></span><span>6089</span><span> [
</span><span>6090</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6091</span><span> SRDescription(SR.DataGridView_ColumnToolTipTextChangedDescr)
</span><span>6092</span><span> ]
</span><span>6093</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnToolTipTextChanged
</span><span>6094</span><span> {
</span><span>6095</span><span> add
</span><span>6096</span><span> {
</span><span>6097</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNTOOLTIPTEXTCHANGED, value);
</span><span>6098</span><span> }
</span><span>6099</span><span> remove
</span><span>6100</span><span> {
</span><span>6101</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNTOOLTIPTEXTCHANGED, value);
</span><span>6102</span><span> }
</span><span>6103</span><span> }
</span><span>6104</span><span>6105</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.ColumnWidthChanged"]/*‘ /></span><span>6106</span><span> [
</span><span>6107</span><span> SRCategory(SR.CatAction),
</span><span>6108</span><span> SRDescription(SR.DataGridView_ColumnWidthChangedDescr)
</span><span>6109</span><span> ]
</span><span>6110</span><span>public</span><span>event</span><span> DataGridViewColumnEventHandler ColumnWidthChanged
</span><span>6111</span><span> {
</span><span>6112</span><span> add
</span><span>6113</span><span> {
</span><span>6114</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCOLUMNWIDTHCHANGED, value);
</span><span>6115</span><span> }
</span><span>6116</span><span> remove
</span><span>6117</span><span> {
</span><span>6118</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCOLUMNWIDTHCHANGED, value);
</span><span>6119</span><span> }
</span><span>6120</span><span> }
</span><span>6121</span><span>6122</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CurrentCellChanged"]/*‘ /></span><span>6123</span><span> [
</span><span>6124</span><span> SRCategory(SR.CatAction),
</span><span>6125</span><span> SRDescription(SR.DataGridView_CurrentCellChangedDescr)
</span><span>6126</span><span> ]
</span><span>6127</span><span>public</span><span>event</span><span> EventHandler CurrentCellChanged
</span><span>6128</span><span> {
</span><span>6129</span><span> add
</span><span>6130</span><span> {
</span><span>6131</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCURRENTCELLCHANGED, value);
</span><span>6132</span><span> }
</span><span>6133</span><span> remove
</span><span>6134</span><span> {
</span><span>6135</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCURRENTCELLCHANGED, value);
</span><span>6136</span><span> }
</span><span>6137</span><span> }
</span><span>6138</span><span>6139</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.CurrentCellDirtyStateChanged"]/*‘ /></span><span>6140</span><span> [
</span><span>6141</span><span> SRCategory(SR.CatBehavior),
</span><span>6142</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6143</span><span> SRDescription(SR.DataGridView_CurrentCellDirtyStateChangedDescr)
</span><span>6144</span><span> ]
</span><span>6145</span><span>public</span><span>event</span><span> EventHandler CurrentCellDirtyStateChanged
</span><span>6146</span><span> {
</span><span>6147</span><span> add
</span><span>6148</span><span> {
</span><span>6149</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWCURRENTCELLDIRTYSTATECHANGED, value);
</span><span>6150</span><span> }
</span><span>6151</span><span> remove
</span><span>6152</span><span> {
</span><span>6153</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWCURRENTCELLDIRTYSTATECHANGED, value);
</span><span>6154</span><span> }
</span><span>6155</span><span> }
</span><span>6156</span><span>6157</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.BindingComplete"]/*‘ /></span><span>6158</span><span> [
</span><span>6159</span><span> SRCategory(SR.CatData),
</span><span>6160</span><span> SRDescription(SR.DataGridView_DataBindingCompleteDescr)
</span><span>6161</span><span> ]
</span><span>6162</span><span>public</span><span>event</span><span> DataGridViewBindingCompleteEventHandler DataBindingComplete
</span><span>6163</span><span> {
</span><span>6164</span><span> add
</span><span>6165</span><span> {
</span><span>6166</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWDATABINDINGCOMPLETE, value);
</span><span>6167</span><span> }
</span><span>6168</span><span> remove
</span><span>6169</span><span> {
</span><span>6170</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWDATABINDINGCOMPLETE, value);
</span><span>6171</span><span> }
</span><span>6172</span><span> }
</span><span>6173</span><span>6174</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DataError"]/*‘ /></span><span>6175</span><span> [
</span><span>6176</span><span> SRCategory(SR.CatBehavior),
</span><span>6177</span><span> SRDescription(SR.DataGridView_DataErrorDescr)
</span><span>6178</span><span> ]
</span><span>6179</span><span>public</span><span>event</span><span> DataGridViewDataErrorEventHandler DataError
</span><span>6180</span><span> {
</span><span>6181</span><span> add
</span><span>6182</span><span> {
</span><span>6183</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWDATAERROR, value);
</span><span>6184</span><span> }
</span><span>6185</span><span> remove
</span><span>6186</span><span> {
</span><span>6187</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWDATAERROR, value);
</span><span>6188</span><span> }
</span><span>6189</span><span> }
</span><span>6190</span><span>6191</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.DefaultValuesNeeded"]/*‘ /></span><span>6192</span><span> [
</span><span>6193</span><span> SRCategory(SR.CatData),
</span><span>6194</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6195</span><span> SRDescription(SR.DataGridView_DefaultValuesNeededDescr)
</span><span>6196</span><span> ]
</span><span>6197</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler DefaultValuesNeeded
</span><span>6198</span><span> {
</span><span>6199</span><span> add
</span><span>6200</span><span> {
</span><span>6201</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWDEFAULTVALUESNEEDED, value);
</span><span>6202</span><span> }
</span><span>6203</span><span> remove
</span><span>6204</span><span> {
</span><span>6205</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWDEFAULTVALUESNEEDED, value);
</span><span>6206</span><span> }
</span><span>6207</span><span> }
</span><span>6208</span><span>6209</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.EditingControlShowing"]/*‘ /></span><span>6210</span><span> [
</span><span>6211</span><span> SRCategory(SR.CatAction),
</span><span>6212</span><span> SRDescription(SR.DataGridView_EditingControlShowingDescr)
</span><span>6213</span><span> ]
</span><span>6214</span><span>public</span><span>event</span><span> DataGridViewEditingControlShowingEventHandler EditingControlShowing
</span><span>6215</span><span> {
</span><span>6216</span><span> add
</span><span>6217</span><span> {
</span><span>6218</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWEDITINGCONTROLSHOWING, value);
</span><span>6219</span><span> }
</span><span>6220</span><span> remove
</span><span>6221</span><span> {
</span><span>6222</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWEDITINGCONTROLSHOWING, value);
</span><span>6223</span><span> }
</span><span>6224</span><span> }
</span><span>6225</span><span>6226</span><span>/*</span><span>6227</span><span> /// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.KeepNewRow"]/*‘ />
</span><span>6228</span><span> public event QuestionEventHandler KeepNewRow
</span><span>6229</span><span> {
</span><span>6230</span><span> add
</span><span>6231</span><span> {
</span><span>6232</span><span> this.Events.AddHandler(EVENT_DATAGRIDVIEWKEEPNEWROW, value);
</span><span>6233</span><span> }
</span><span>6234</span><span> remove
</span><span>6235</span><span> {
</span><span>6236</span><span> this.Events.RemoveHandler(EVENT_DATAGRIDVIEWKEEPNEWROW, value);
</span><span>6237</span><span> }
</span><span>6238</span><span> }</span><span>*/</span><span>6239</span><span>6240</span><span>/*</span><span>/// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.NewRowDiscarded"]/*‘ />
</span><span>6241</span><span> /// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.NewRowDiscarded"]/*‘ />
</span><span>6242</span><span> public event EventHandler NewRowDiscarded
</span><span>6243</span><span> {
</span><span>6244</span><span> add
</span><span>6245</span><span> {
</span><span>6246</span><span> this.Events.AddHandler(EVENT_DATAGRIDVIEWNEWROWDISCARDED, value);
</span><span>6247</span><span> }
</span><span>6248</span><span> remove
</span><span>6249</span><span> {
</span><span>6250</span><span> this.Events.RemoveHandler(EVENT_DATAGRIDVIEWNEWROWDISCARDED, value);
</span><span>6251</span><span> }
</span><span>6252</span><span> }</span><span>*/</span><span>6253</span><span>6254</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.NewRowNeeded"]/*‘ /></span><span>6255</span><span> [
</span><span>6256</span><span> SRCategory(SR.CatData),
</span><span>6257</span><span> SRDescription(SR.DataGridView_NewRowNeededDescr)
</span><span>6258</span><span> ]
</span><span>6259</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler NewRowNeeded
</span><span>6260</span><span> {
</span><span>6261</span><span> add
</span><span>6262</span><span> {
</span><span>6263</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWNEWROWNEEDED, value);
</span><span>6264</span><span> }
</span><span>6265</span><span> remove
</span><span>6266</span><span> {
</span><span>6267</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWNEWROWNEEDED, value);
</span><span>6268</span><span> }
</span><span>6269</span><span> }
</span><span>6270</span><span>6271</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowContextMenuStripChanged"]/*‘ /></span><span>6272</span><span> [
</span><span>6273</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6274</span><span> SRDescription(SR.DataGridView_RowContextMenuStripChangedDescr)
</span><span>6275</span><span> ]
</span><span>6276</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowContextMenuStripChanged
</span><span>6277</span><span> {
</span><span>6278</span><span> add
</span><span>6279</span><span> {
</span><span>6280</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWCONTEXTMENUSTRIPCHANGED, value);
</span><span>6281</span><span> }
</span><span>6282</span><span> remove
</span><span>6283</span><span> {
</span><span>6284</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWCONTEXTMENUSTRIPCHANGED, value);
</span><span>6285</span><span> }
</span><span>6286</span><span> }
</span><span>6287</span><span>6288</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowContextMenuStripNeeded"]/*‘ /></span><span>6289</span><span> [
</span><span>6290</span><span> SRCategory(SR.CatData),
</span><span>6291</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6292</span><span> SRDescription(SR.DataGridView_RowContextMenuStripNeededDescr)
</span><span>6293</span><span> ]
</span><span>6294</span><span>public</span><span>event</span><span> DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded
</span><span>6295</span><span> {
</span><span>6296</span><span> add
</span><span>6297</span><span> {
</span><span>6298</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWCONTEXTMENUSTRIPNEEDED, value);
</span><span>6299</span><span> }
</span><span>6300</span><span> remove
</span><span>6301</span><span> {
</span><span>6302</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWCONTEXTMENUSTRIPNEEDED, value);
</span><span>6303</span><span> }
</span><span>6304</span><span> }
</span><span>6305</span><span>6306</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowDefaultCellStyleChanged"]/*‘ /></span><span>6307</span><span> [
</span><span>6308</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6309</span><span> SRDescription(SR.DataGridView_RowDefaultCellStyleChangedDescr)
</span><span>6310</span><span> ]
</span><span>6311</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowDefaultCellStyleChanged
</span><span>6312</span><span> {
</span><span>6313</span><span> add
</span><span>6314</span><span> {
</span><span>6315</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWDEFAULTCELLSTYLECHANGED, value);
</span><span>6316</span><span> }
</span><span>6317</span><span> remove
</span><span>6318</span><span> {
</span><span>6319</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWDEFAULTCELLSTYLECHANGED, value);
</span><span>6320</span><span> }
</span><span>6321</span><span> }
</span><span>6322</span><span>6323</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowDirtyStateNeeded"]/*‘ /></span><span>6324</span><span> [
</span><span>6325</span><span> SRCategory(SR.CatData),
</span><span>6326</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6327</span><span> SRDescription(SR.DataGridView_RowDirtyStateNeededDescr)
</span><span>6328</span><span> ]
</span><span>6329</span><span>public</span><span>event</span><span> QuestionEventHandler RowDirtyStateNeeded
</span><span>6330</span><span> {
</span><span>6331</span><span> add
</span><span>6332</span><span> {
</span><span>6333</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWDIRTYSTATENEEDED, value);
</span><span>6334</span><span> }
</span><span>6335</span><span> remove
</span><span>6336</span><span> {
</span><span>6337</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWDIRTYSTATENEEDED, value);
</span><span>6338</span><span> }
</span><span>6339</span><span> }
</span><span>6340</span><span>6341</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowDividerDoubleClick"]/*‘ /></span><span>6342</span><span> [
</span><span>6343</span><span> SRCategory(SR.CatMouse),
</span><span>6344</span><span> SRDescription(SR.DataGridView_RowDividerDoubleClickDescr)
</span><span>6345</span><span> ]
</span><span>6346</span><span>public</span><span>event</span><span> DataGridViewRowDividerDoubleClickEventHandler RowDividerDoubleClick
</span><span>6347</span><span> {
</span><span>6348</span><span> add
</span><span>6349</span><span> {
</span><span>6350</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWDIVIDERDOUBLECLICK, value);
</span><span>6351</span><span> }
</span><span>6352</span><span> remove
</span><span>6353</span><span> {
</span><span>6354</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWDIVIDERDOUBLECLICK, value);
</span><span>6355</span><span> }
</span><span>6356</span><span> }
</span><span>6357</span><span>6358</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowDividerHeightChanged"]/*‘ /></span><span>6359</span><span> [
</span><span>6360</span><span> SRCategory(SR.CatAppearance),
</span><span>6361</span><span> SRDescription(SR.DataGridView_RowDividerHeightChangedDescr)
</span><span>6362</span><span> ]
</span><span>6363</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowDividerHeightChanged
</span><span>6364</span><span> {
</span><span>6365</span><span> add
</span><span>6366</span><span> {
</span><span>6367</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWDIVIDERHEIGHTCHANGED, value);
</span><span>6368</span><span> }
</span><span>6369</span><span> remove
</span><span>6370</span><span> {
</span><span>6371</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWDIVIDERHEIGHTCHANGED, value);
</span><span>6372</span><span> }
</span><span>6373</span><span> }
</span><span>6374</span><span>6375</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowEnter"]/*‘ /></span><span>6376</span><span> [
</span><span>6377</span><span> SRCategory(SR.CatFocus),
</span><span>6378</span><span> SRDescription(SR.DataGridView_RowEnterDescr)
</span><span>6379</span><span> ]
</span><span>6380</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler RowEnter
</span><span>6381</span><span> {
</span><span>6382</span><span> add
</span><span>6383</span><span> {
</span><span>6384</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWENTER, value);
</span><span>6385</span><span> }
</span><span>6386</span><span> remove
</span><span>6387</span><span> {
</span><span>6388</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWENTER, value);
</span><span>6389</span><span> }
</span><span>6390</span><span> }
</span><span>6391</span><span>6392</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowErrorTextChanged"]/*‘ /></span><span>6393</span><span> [
</span><span>6394</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6395</span><span> SRDescription(SR.DataGridView_RowErrorTextChangedDescr)
</span><span>6396</span><span> ]
</span><span>6397</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowErrorTextChanged
</span><span>6398</span><span> {
</span><span>6399</span><span> add
</span><span>6400</span><span> {
</span><span>6401</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWERRORTEXTCHANGED, value);
</span><span>6402</span><span> }
</span><span>6403</span><span> remove
</span><span>6404</span><span> {
</span><span>6405</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWERRORTEXTCHANGED, value);
</span><span>6406</span><span> }
</span><span>6407</span><span> }
</span><span>6408</span><span>6409</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowErrorTextNeeded"]/*‘ /></span><span>6410</span><span> [
</span><span>6411</span><span> SRCategory(SR.CatData),
</span><span>6412</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6413</span><span> SRDescription(SR.DataGridView_RowErrorTextNeededDescr)
</span><span>6414</span><span> ]
</span><span>6415</span><span>public</span><span>event</span><span> DataGridViewRowErrorTextNeededEventHandler RowErrorTextNeeded
</span><span>6416</span><span> {
</span><span>6417</span><span> add
</span><span>6418</span><span> {
</span><span>6419</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWERRORTEXTNEEDED, value);
</span><span>6420</span><span> }
</span><span>6421</span><span> remove
</span><span>6422</span><span> {
</span><span>6423</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWERRORTEXTNEEDED, value);
</span><span>6424</span><span> }
</span><span>6425</span><span> }
</span><span>6426</span><span>6427</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeaderMouseClick"]/*‘ /></span><span>6428</span><span> [
</span><span>6429</span><span> SRCategory(SR.CatMouse),
</span><span>6430</span><span> SRDescription(SR.DataGridView_RowHeaderMouseClickDescr)
</span><span>6431</span><span> ]
</span><span>6432</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler RowHeaderMouseClick
</span><span>6433</span><span> {
</span><span>6434</span><span> add
</span><span>6435</span><span> {
</span><span>6436</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERMOUSECLICK, value);
</span><span>6437</span><span> }
</span><span>6438</span><span> remove
</span><span>6439</span><span> {
</span><span>6440</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERMOUSECLICK, value);
</span><span>6441</span><span> }
</span><span>6442</span><span> }
</span><span>6443</span><span>6444</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeaderMouseDoubleClick"]/*‘ /></span><span>6445</span><span> [
</span><span>6446</span><span> SRCategory(SR.CatMouse),
</span><span>6447</span><span> SRDescription(SR.DataGridView_RowHeaderMouseDoubleClickDescr)
</span><span>6448</span><span> ]
</span><span>6449</span><span>public</span><span>event</span><span> DataGridViewCellMouseEventHandler RowHeaderMouseDoubleClick
</span><span>6450</span><span> {
</span><span>6451</span><span> add
</span><span>6452</span><span> {
</span><span>6453</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERMOUSEDOUBLECLICK, value);
</span><span>6454</span><span> }
</span><span>6455</span><span> remove
</span><span>6456</span><span> {
</span><span>6457</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERMOUSEDOUBLECLICK, value);
</span><span>6458</span><span> }
</span><span>6459</span><span> }
</span><span>6460</span><span>6461</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeaderCellChanged"]/*‘ /></span><span>6462</span><span> [
</span><span>6463</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6464</span><span> SRDescription(SR.DataGridView_RowHeaderCellChangedDescr)
</span><span>6465</span><span> ]
</span><span>6466</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowHeaderCellChanged
</span><span>6467</span><span> {
</span><span>6468</span><span> add
</span><span>6469</span><span> {
</span><span>6470</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEADERCELLCHANGED, value);
</span><span>6471</span><span> }
</span><span>6472</span><span> remove
</span><span>6473</span><span> {
</span><span>6474</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEADERCELLCHANGED, value);
</span><span>6475</span><span> }
</span><span>6476</span><span> }
</span><span>6477</span><span>6478</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeightChanged"]/*‘ /></span><span>6479</span><span> [
</span><span>6480</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6481</span><span> SRDescription(SR.DataGridView_RowHeightChangedDescr)
</span><span>6482</span><span> ]
</span><span>6483</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowHeightChanged
</span><span>6484</span><span> {
</span><span>6485</span><span> add
</span><span>6486</span><span> {
</span><span>6487</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEIGHTCHANGED, value);
</span><span>6488</span><span> }
</span><span>6489</span><span> remove
</span><span>6490</span><span> {
</span><span>6491</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEIGHTCHANGED, value);
</span><span>6492</span><span> }
</span><span>6493</span><span> }
</span><span>6494</span><span>6495</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeightInfoNeeded"]/*‘ /></span><span>6496</span><span> [
</span><span>6497</span><span> SRCategory(SR.CatData),
</span><span>6498</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6499</span><span> SRDescription(SR.DataGridView_RowHeightInfoNeededDescr)
</span><span>6500</span><span> ]
</span><span>6501</span><span>public</span><span>event</span><span> DataGridViewRowHeightInfoNeededEventHandler RowHeightInfoNeeded
</span><span>6502</span><span> {
</span><span>6503</span><span> add
</span><span>6504</span><span> {
</span><span>6505</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEIGHTINFONEEDED, value);
</span><span>6506</span><span> }
</span><span>6507</span><span> remove
</span><span>6508</span><span> {
</span><span>6509</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEIGHTINFONEEDED, value);
</span><span>6510</span><span> }
</span><span>6511</span><span> }
</span><span>6512</span><span>6513</span><span>internal</span><span> DataGridViewRowHeightInfoNeededEventArgs RowHeightInfoNeededEventArgs
</span><span>6514</span><span> {
</span><span>6515</span><span>get</span><span>6516</span><span> {
</span><span>6517</span><span>if</span> (<span>this</span>.dgvrhine == <span>null</span><span>)
</span><span>6518</span><span> {
</span><span>6519</span><span>this</span>.dgvrhine = <span>new</span><span> DataGridViewRowHeightInfoNeededEventArgs();
</span><span>6520</span><span> }
</span><span>6521</span><span>return</span><span>this</span><span>.dgvrhine;
</span><span>6522</span><span> }
</span><span>6523</span><span> }
</span><span>6524</span><span>6525</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowHeightInfoPushed"]/*‘ /></span><span>6526</span><span> [
</span><span>6527</span><span> SRCategory(SR.CatData),
</span><span>6528</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6529</span><span> SRDescription(SR.DataGridView_RowHeightInfoPushedDescr)
</span><span>6530</span><span> ]
</span><span>6531</span><span>public</span><span>event</span><span> DataGridViewRowHeightInfoPushedEventHandler RowHeightInfoPushed
</span><span>6532</span><span> {
</span><span>6533</span><span> add
</span><span>6534</span><span> {
</span><span>6535</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWHEIGHTINFOPUSHED, value);
</span><span>6536</span><span> }
</span><span>6537</span><span> remove
</span><span>6538</span><span> {
</span><span>6539</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWHEIGHTINFOPUSHED, value);
</span><span>6540</span><span> }
</span><span>6541</span><span> }
</span><span>6542</span><span>6543</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowLeave"]/*‘ /></span><span>6544</span><span> [
</span><span>6545</span><span> SRCategory(SR.CatFocus),
</span><span>6546</span><span> SRDescription(SR.DataGridView_RowLeaveDescr)
</span><span>6547</span><span> ]
</span><span>6548</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler RowLeave
</span><span>6549</span><span> {
</span><span>6550</span><span> add
</span><span>6551</span><span> {
</span><span>6552</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWLEAVE, value);
</span><span>6553</span><span> }
</span><span>6554</span><span> remove
</span><span>6555</span><span> {
</span><span>6556</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWLEAVE, value);
</span><span>6557</span><span> }
</span><span>6558</span><span> }
</span><span>6559</span><span>6560</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowMinimumHeightChanged"]/*‘ /></span><span>6561</span><span> [
</span><span>6562</span><span> SRCategory(SR.CatPropertyChanged),
</span><span>6563</span><span> SRDescription(SR.DataGridView_RowMinimumHeightChangedDescr)
</span><span>6564</span><span> ]
</span><span>6565</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowMinimumHeightChanged
</span><span>6566</span><span> {
</span><span>6567</span><span> add
</span><span>6568</span><span> {
</span><span>6569</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWMINIMUMHEIGHTCHANGED, value);
</span><span>6570</span><span> }
</span><span>6571</span><span> remove
</span><span>6572</span><span> {
</span><span>6573</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWMINIMUMHEIGHTCHANGED, value);
</span><span>6574</span><span> }
</span><span>6575</span><span> }
</span><span>6576</span><span>6577</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowPostPaint"]/*‘ /></span><span>6578</span><span> [
</span><span>6579</span><span> SRCategory(SR.CatDisplay),
</span><span>6580</span><span> SRDescription(SR.DataGridView_RowPostPaintDescr)
</span><span>6581</span><span> ]
</span><span>6582</span><span>public</span><span>event</span><span> DataGridViewRowPostPaintEventHandler RowPostPaint
</span><span>6583</span><span> {
</span><span>6584</span><span> add
</span><span>6585</span><span> {
</span><span>6586</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWPOSTPAINT, value);
</span><span>6587</span><span> }
</span><span>6588</span><span> remove
</span><span>6589</span><span> {
</span><span>6590</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWPOSTPAINT, value);
</span><span>6591</span><span> }
</span><span>6592</span><span> }
</span><span>6593</span><span>6594</span><span>internal</span><span> DataGridViewRowPostPaintEventArgs RowPostPaintEventArgs
</span><span>6595</span><span> {
</span><span>6596</span><span>get</span><span>6597</span><span> {
</span><span>6598</span><span>if</span> (<span>this</span>.dgvrpope == <span>null</span><span>)
</span><span>6599</span><span> {
</span><span>6600</span><span>this</span>.dgvrpope = <span>new</span> DataGridViewRowPostPaintEventArgs(<span>this</span><span>);
</span><span>6601</span><span> }
</span><span>6602</span><span>return</span><span>this</span><span>.dgvrpope;
</span><span>6603</span><span> }
</span><span>6604</span><span> }
</span><span>6605</span><span>6606</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowPrePaint"]/*‘ /></span><span>6607</span><span> [
</span><span>6608</span><span> SRCategory(SR.CatDisplay),
</span><span>6609</span><span> SRDescription(SR.DataGridView_RowPrePaintDescr)
</span><span>6610</span><span> ]
</span><span>6611</span><span>public</span><span>event</span><span> DataGridViewRowPrePaintEventHandler RowPrePaint
</span><span>6612</span><span> {
</span><span>6613</span><span> add
</span><span>6614</span><span> {
</span><span>6615</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWPREPAINT, value);
</span><span>6616</span><span> }
</span><span>6617</span><span> remove
</span><span>6618</span><span> {
</span><span>6619</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWPREPAINT, value);
</span><span>6620</span><span> }
</span><span>6621</span><span> }
</span><span>6622</span><span>6623</span><span>internal</span><span> DataGridViewRowPrePaintEventArgs RowPrePaintEventArgs
</span><span>6624</span><span> {
</span><span>6625</span><span>get</span><span>6626</span><span> {
</span><span>6627</span><span>if</span> (<span>this</span>.dgvrprpe == <span>null</span><span>)
</span><span>6628</span><span> {
</span><span>6629</span><span>this</span>.dgvrprpe = <span>new</span> DataGridViewRowPrePaintEventArgs(<span>this</span><span>);
</span><span>6630</span><span> }
</span><span>6631</span><span>return</span><span>this</span><span>.dgvrprpe;
</span><span>6632</span><span> }
</span><span>6633</span><span> }
</span><span>6634</span><span>6635</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowsAdded"]/*‘ /></span><span>6636</span><span> [
</span><span>6637</span><span> SRCategory(SR.CatAction),
</span><span>6638</span><span> SRDescription(SR.DataGridView_RowsAddedDescr)
</span><span>6639</span><span> ]
</span><span>6640</span><span>public</span><span>event</span><span> DataGridViewRowsAddedEventHandler RowsAdded
</span><span>6641</span><span> {
</span><span>6642</span><span> add
</span><span>6643</span><span> {
</span><span>6644</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWSADDED, value);
</span><span>6645</span><span> }
</span><span>6646</span><span> remove
</span><span>6647</span><span> {
</span><span>6648</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWSADDED, value);
</span><span>6649</span><span> }
</span><span>6650</span><span> }
</span><span>6651</span><span>6652</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowsRemoved"]/*‘ /></span><span>6653</span><span> [
</span><span>6654</span><span> SRCategory(SR.CatAction),
</span><span>6655</span><span> SRDescription(SR.DataGridView_RowsRemovedDescr)
</span><span>6656</span><span> ]
</span><span>6657</span><span>public</span><span>event</span><span> DataGridViewRowsRemovedEventHandler RowsRemoved
</span><span>6658</span><span> {
</span><span>6659</span><span> add
</span><span>6660</span><span> {
</span><span>6661</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWSREMOVED, value);
</span><span>6662</span><span> }
</span><span>6663</span><span> remove
</span><span>6664</span><span> {
</span><span>6665</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWSREMOVED, value);
</span><span>6666</span><span> }
</span><span>6667</span><span> }
</span><span>6668</span><span>6669</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowStateChanged"]/*‘ /></span><span>6670</span><span> [
</span><span>6671</span><span> SRCategory(SR.CatBehavior),
</span><span>6672</span><span> SRDescription(SR.DataGridView_RowStateChangedDescr)
</span><span>6673</span><span> ]
</span><span>6674</span><span>public</span><span>event</span><span> DataGridViewRowStateChangedEventHandler RowStateChanged
</span><span>6675</span><span> {
</span><span>6676</span><span> add
</span><span>6677</span><span> {
</span><span>6678</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWSTATECHANGED, value);
</span><span>6679</span><span> }
</span><span>6680</span><span> remove
</span><span>6681</span><span> {
</span><span>6682</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWSTATECHANGED, value);
</span><span>6683</span><span> }
</span><span>6684</span><span> }
</span><span>6685</span><span>6686</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowUnshared"]/*‘ /></span><span>6687</span><span> [
</span><span>6688</span><span> SRCategory(SR.CatBehavior),
</span><span>6689</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6690</span><span> SRDescription(SR.DataGridView_RowUnsharedDescr)
</span><span>6691</span><span> ]
</span><span>6692</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler RowUnshared
</span><span>6693</span><span> {
</span><span>6694</span><span> add
</span><span>6695</span><span> {
</span><span>6696</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWUNSHARED, value);
</span><span>6697</span><span> }
</span><span>6698</span><span> remove
</span><span>6699</span><span> {
</span><span>6700</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWUNSHARED, value);
</span><span>6701</span><span> }
</span><span>6702</span><span> }
</span><span>6703</span><span>6704</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowValidated"]/*‘ /></span><span>6705</span><span> [
</span><span>6706</span><span> SRCategory(SR.CatFocus),
</span><span>6707</span><span> SRDescription(SR.DataGridView_RowValidatedDescr)
</span><span>6708</span><span> ]
</span><span>6709</span><span>public</span><span>event</span><span> DataGridViewCellEventHandler RowValidated
</span><span>6710</span><span> {
</span><span>6711</span><span> add
</span><span>6712</span><span> {
</span><span>6713</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWVALIDATED, value);
</span><span>6714</span><span> }
</span><span>6715</span><span> remove
</span><span>6716</span><span> {
</span><span>6717</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWVALIDATED, value);
</span><span>6718</span><span> }
</span><span>6719</span><span> }
</span><span>6720</span><span>6721</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.RowValidating"]/*‘ /></span><span>6722</span><span> [
</span><span>6723</span><span> SRCategory(SR.CatFocus),
</span><span>6724</span><span> SRDescription(SR.DataGridView_RowValidatingDescr)
</span><span>6725</span><span> ]
</span><span>6726</span><span>public</span><span>event</span><span> DataGridViewCellCancelEventHandler RowValidating
</span><span>6727</span><span> {
</span><span>6728</span><span> add
</span><span>6729</span><span> {
</span><span>6730</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWROWVALIDATING, value);
</span><span>6731</span><span> }
</span><span>6732</span><span> remove
</span><span>6733</span><span> {
</span><span>6734</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWROWVALIDATING, value);
</span><span>6735</span><span> }
</span><span>6736</span><span> }
</span><span>6737</span><span>6738</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Scroll"]/*‘ /></span><span>6739</span><span> [
</span><span>6740</span><span> SRCategory(SR.CatAction),
</span><span>6741</span><span> SRDescription(SR.DataGridView_ScrollDescr)
</span><span>6742</span><span> ]
</span><span>6743</span><span>public</span><span>event</span><span> ScrollEventHandler Scroll
</span><span>6744</span><span> {
</span><span>6745</span><span> add
</span><span>6746</span><span> {
</span><span>6747</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWSCROLL, value);
</span><span>6748</span><span> }
</span><span>6749</span><span> remove
</span><span>6750</span><span> {
</span><span>6751</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWSCROLL, value);
</span><span>6752</span><span> }
</span><span>6753</span><span> }
</span><span>6754</span><span>6755</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SelectionChanged"]/*‘ /></span><span>6756</span><span> [
</span><span>6757</span><span> SRCategory(SR.CatAction),
</span><span>6758</span><span> SRDescription(SR.DataGridView_SelectionChangedDescr)
</span><span>6759</span><span> ]
</span><span>6760</span><span>public</span><span>event</span><span> EventHandler SelectionChanged
</span><span>6761</span><span> {
</span><span>6762</span><span> add
</span><span>6763</span><span> {
</span><span>6764</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWSELECTIONCHANGED, value);
</span><span>6765</span><span> }
</span><span>6766</span><span> remove
</span><span>6767</span><span> {
</span><span>6768</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWSELECTIONCHANGED, value);
</span><span>6769</span><span> }
</span><span>6770</span><span> }
</span><span>6771</span><span>6772</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.SortCompare"]/*‘ /></span><span>6773</span><span> [
</span><span>6774</span><span> SRCategory(SR.CatData),
</span><span>6775</span><span> EditorBrowsable(EditorBrowsableState.Advanced),
</span><span>6776</span><span> SRDescription(SR.DataGridView_SortCompareDescr)
</span><span>6777</span><span> ]
</span><span>6778</span><span>public</span><span>event</span><span> DataGridViewSortCompareEventHandler SortCompare
</span><span>6779</span><span> {
</span><span>6780</span><span> add
</span><span>6781</span><span> {
</span><span>6782</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWSORTCOMPARE, value);
</span><span>6783</span><span> }
</span><span>6784</span><span> remove
</span><span>6785</span><span> {
</span><span>6786</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWSORTCOMPARE, value);
</span><span>6787</span><span> }
</span><span>6788</span><span> }
</span><span>6789</span><span>6790</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.Sorted"]/*‘ /></span><span>6791</span><span> [
</span><span>6792</span><span> SRCategory(SR.CatData),
</span><span>6793</span><span> SRDescription(SR.DataGridView_SortedDescr)
</span><span>6794</span><span> ]
</span><span>6795</span><span>public</span><span>event</span><span> EventHandler Sorted
</span><span>6796</span><span> {
</span><span>6797</span><span> add
</span><span>6798</span><span> {
</span><span>6799</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWSORTED, value);
</span><span>6800</span><span> }
</span><span>6801</span><span> remove
</span><span>6802</span><span> {
</span><span>6803</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWSORTED, value);
</span><span>6804</span><span> }
</span><span>6805</span><span> }
</span><span>6806</span><span>6807</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.StyleChanged"]/*‘ /></span><span>6808</span><span>///</span><span><internalonly/></span><span>6809</span><span> [
</span><span>6810</span> Browsable(<span>false</span><span>),
</span><span>6811</span><span> EditorBrowsable(EditorBrowsableState.Never)
</span><span>6812</span><span> ]
</span><span>6813</span><span>new</span><span>public</span><span>event</span><span> EventHandler StyleChanged
</span><span>6814</span><span> {
</span><span>6815</span><span> add
</span><span>6816</span><span> {
</span><span>6817</span><span>base</span>.StyleChanged +=<span> value;
</span><span>6818</span><span> }
</span><span>6819</span><span> remove
</span><span>6820</span><span> {
</span><span>6821</span><span>base</span>.StyleChanged -=<span> value;
</span><span>6822</span><span> }
</span><span>6823</span><span> }
</span><span>6824</span><span>6825</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.UserAddedRow"]/*‘ /></span><span>6826</span><span> [
</span><span>6827</span><span> SRCategory(SR.CatAction),
</span><span>6828</span><span> SRDescription(SR.DataGridView_UserAddedRowDescr)
</span><span>6829</span><span> ]
</span><span>6830</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler UserAddedRow
</span><span>6831</span><span> {
</span><span>6832</span><span> add
</span><span>6833</span><span> {
</span><span>6834</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWUSERADDEDROW, value);
</span><span>6835</span><span> }
</span><span>6836</span><span> remove
</span><span>6837</span><span> {
</span><span>6838</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWUSERADDEDROW, value);
</span><span>6839</span><span> }
</span><span>6840</span><span> }
</span><span>6841</span><span>6842</span><span>/*</span><span>/// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.UserAddingRow"]/*‘ />
</span><span>6843</span><span> /// <include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.UserAddingRow"]/*‘ />
</span><span>6844</span><span> public event DataGridViewRowCancelEventHandler UserAddingRow
</span><span>6845</span><span> {
</span><span>6846</span><span> add
</span><span>6847</span><span> {
</span><span>6848</span><span> this.Events.AddHandler(EVENT_DATAGRIDVIEWUSERADDINGROW, value);
</span><span>6849</span><span> }
</span><span>6850</span><span> remove
</span><span>6851</span><span> {
</span><span>6852</span><span> this.Events.RemoveHandler(EVENT_DATAGRIDVIEWUSERADDINGROW, value);
</span><span>6853</span><span> }
</span><span>6854</span><span> }</span><span>*/</span><span>6855</span><span>6856</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.UserDeletedRow"]/*‘ /></span><span>6857</span><span> [
</span><span>6858</span><span> SRCategory(SR.CatAction),
</span><span>6859</span><span> SRDescription(SR.DataGridView_UserDeletedRowDescr)
</span><span>6860</span><span> ]
</span><span>6861</span><span>public</span><span>event</span><span> DataGridViewRowEventHandler UserDeletedRow
</span><span>6862</span><span> {
</span><span>6863</span><span> add
</span><span>6864</span><span> {
</span><span>6865</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWUSERDELETEDROW, value);
</span><span>6866</span><span> }
</span><span>6867</span><span> remove
</span><span>6868</span><span> {
</span><span>6869</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWUSERDELETEDROW, value);
</span><span>6870</span><span> }
</span><span>6871</span><span> }
</span><span>6872</span><span>6873</span><span>///</span><span><include file=‘docDataGridView.uex‘ path=‘docs/doc[@for="DataGridView.UserDeletingRow"]/*‘ /></span><span>6874</span><span> [
</span><span>6875</span><span> SRCategory(SR.CatAction),
</span><span>6876</span><span> SRDescription(SR.DataGridView_UserDeletingRowDescr)
</span><span>6877</span><span> ]
</span><span>6878</span><span>public</span><span>event</span><span> DataGridViewRowCancelEventHandler UserDeletingRow
</span><span>6879</span><span> {
</span><span>6880</span><span> add
</span><span>6881</span><span> {
</span><span>6882</span><span>this</span><span>.Events.AddHandler(EVENT_DATAGRIDVIEWUSERDELETINGROW, value);
</span><span>6883</span><span> }
</span><span>6884</span><span> remove
</span><span>6885</span><span> {
</span><span>6886</span><span>this</span><span>.Events.RemoveHandler(EVENT_DATAGRIDVIEWUSERDELETINGROW, value);
</span><span>6887</span><span> }
</span><span>6888</span><span> }
</span><span>6889</span><span>6890</span><span>////////////////////////
</span><span>6891</span><span>//</span><span>//</span><span>6892</span><span>//</span><span> ISupportInitialize </span><span>//</span><span>6893</span><span>//</span><span>//
</span><span>6894</span><span>////////////////////////
</span><span>6895</span><span> [
</span><span>6896</span> SuppressMessage(<span>"</span><span>Microsoft.Design</span><span>"</span>, <span>"</span><span>CA1033:InterfaceMethodsShouldBeCallableByChildTypes</span><span>"</span>) <span>//</span><span> VSWhidbey 405004</span><span>6897</span><span> ]
</span><span>6898</span><span>void</span><span> ISupportInitialize.BeginInit()
</span><span>6899</span><span> {
</span><span>6900</span><span>if</span> (<span>this</span><span>.dataGridViewState2[DATAGRIDVIEWSTATE2_initializing])
</span><span>6901</span><span> {
</span><span>6902</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridViewBeginInit));
</span><span>6903</span><span> }
</span><span>6904</span><span>6905</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_initializing] = <span>true</span><span>;
</span><span>6906</span><span> }
</span><span>6907</span><span>6908</span><span> [
</span><span>6909</span> SuppressMessage(<span>"</span><span>Microsoft.Design</span><span>"</span>, <span>"</span><span>CA1033:InterfaceMethodsShouldBeCallableByChildTypes</span><span>"</span>) <span>//</span><span> VSWhidbey 405004</span><span>6910</span><span> ]
</span><span>6911</span><span>void</span><span> ISupportInitialize.EndInit()
</span><span>6912</span><span> {
</span><span>6913</span><span>this</span>.dataGridViewState2[DATAGRIDVIEWSTATE2_initializing] = <span>false</span><span>;
</span><span>6914</span><span>6915</span><span>foreach</span> (DataGridViewColumn dataGridViewColumn <span>in</span><span>this</span><span>.Columns)
</span><span>6916</span><span> {
</span><span>6917</span><span>if</span> (dataGridViewColumn.Frozen &&
<span>6918</span> dataGridViewColumn.Visible &&
<span>6919</span> dataGridViewColumn.InheritedAutoSizeMode ==<span> DataGridViewAutoSizeColumnMode.Fill)
</span><span>6920</span><span> {
</span><span>6921</span> dataGridViewColumn.AutoSizeMode =<span> DataGridViewAutoSizeColumnMode.None;
</span><span>6922</span><span> }
</span><span>6923</span><span> }
</span><span>6924</span><span>6925</span> DataGridViewSelectionMode selectionMode = <span>this</span><span>.SelectionMode;
</span><span>6926</span><span>if</span> (selectionMode == DataGridViewSelectionMode.FullColumnSelect || selectionMode ==<span> DataGridViewSelectionMode.ColumnHeaderSelect)
</span><span>6927</span><span> {
</span><span>6928</span><span>foreach</span> (DataGridViewColumn dataGridViewColumn <span>in</span><span>this</span><span>.Columns)
</span><span>6929</span><span> {
</span><span>6930</span><span>if</span> (dataGridViewColumn.SortMode ==<span> DataGridViewColumnSortMode.Automatic)
</span><span>6931</span><span> {
</span><span>6932</span><span>//</span><span> Resetting SelectionMode to its acceptable default value. We don‘t want the control to ever end up in an invalid state.</span><span>6933</span><span>this</span>.SelectionMode = defaultSelectionMode; <span>//</span><span> DataGridViewSelectionMode.RowHeaderSelect</span><span>6934</span><span>throw</span><span>new</span><span> InvalidOperationException(SR.GetString(SR.DataGridView_SelectionModeReset,
</span><span>6935</span><span> SR.GetString(SR.DataGridView_SelectionModeAndSortModeClash, (selectionMode).ToString()),
</span><span>6936</span><span> (defaultSelectionMode).ToString()));
</span><span>6937</span><span> }
</span><span>6938</span><span> }
</span><span>6939</span><span> }
</span><span>6940</span><span> }
</span><span>6941</span><span>6942</span><span>/*</span><span> INTERNAL ENUMERATIONS </span><span>*/</span><span>6943</span><span>6944</span><span>internal</span><span>enum</span><span> DataGridViewHitTestTypeInternal
</span><span>6945</span><span> {
</span><span>6946</span><span> None,
</span><span>6947</span><span> Cell,
</span><span>6948</span><span> ColumnHeader,
</span><span>6949</span><span> RowHeader,
</span><span>6950</span><span> ColumnResizeLeft,
</span><span>6951</span><span> ColumnResizeRight,
</span><span>6952</span><span> RowResizeTop,
</span><span>6953</span><span> RowResizeBottom,
</span><span>6954</span><span> FirstColumnHeaderLeft,
</span><span>6955</span><span> TopLeftHeader,
</span><span>6956</span><span> TopLeftHeaderResizeLeft,
</span><span>6957</span><span> TopLeftHeaderResizeRight,
</span><span>6958</span><span> TopLeftHeaderResizeTop,
</span><span>6959</span><span> TopLeftHeaderResizeBottom,
</span><span>6960</span><span> ColumnHeadersResizeBottom,
</span><span>6961</span><span> ColumnHeadersResizeTop,
</span><span>6962</span><span> RowHeadersResizeRight,
</span><span>6963</span><span> RowHeadersResizeLeft,
</span><span>6964</span><span> ColumnHeaderLeft,
</span><span>6965</span><span> ColumnHeaderRight
</span><span>6966</span><span> }
</span><span>6967</span><span>6968</span><span>internal</span><span>enum</span><span> DataGridViewValidateCellInternal
</span><span>6969</span><span> {
</span><span>6970</span><span> Never,
</span><span>6971</span><span> Always,
</span><span>6972</span><span> WhenChanged
</span><span>6973</span><span> }
</span><span>6974</span><span>6975</span><span>private</span><span>enum</span><span> DataGridViewMouseEvent
</span><span>6976</span><span> {
</span><span>6977</span><span> Click,
</span><span>6978</span><span> DoubleClick,
</span><span>6979</span><span> MouseClick,
</span><span>6980</span><span> MouseDoubleClick,
</span><span>6981</span><span> MouseDown,
</span><span>6982</span><span> MouseUp,
</span><span>6983</span><span> MouseMove
</span><span>6984</span><span> }
</span><span>6985</span><span>6986</span><span>private</span><span>struct</span><span> MouseClickInfo
</span><span>6987</span><span> {
</span><span>6988</span><span>public</span><span> MouseButtons button;
</span><span>6989</span><span>public</span><span>long</span><span> timeStamp;
</span><span>6990</span><span>public</span><span>int</span><span> x;
</span><span>6991</span><span>public</span><span>int</span><span> y;
</span><span>6992</span><span>public</span><span>int</span><span> col;
</span><span>6993</span><span>public</span><span>int</span><span> row;
</span><span>6994</span><span> }
</span><span>6995</span><span> }
</span><span>6996</span><span>}
</span><span>6997</span> Document OutlineProject ExplorerNamespace Explorer
原文:http://www.cnblogs.com/endv/p/4273586.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!