GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 > NewCellPositionNeededEventArgs クラス : NewCellPosition プロパティ |
Public Property NewCellPosition As CellPosition
public CellPosition NewCellPosition {get; set;}
例外 | 解説 |
---|---|
System.InvalidOperationException | Templateがnull 参照 (Visual Basicでは Nothing)です。 |
System.ArgumentOutOfRangeException | 指定されたCellPosition.SectionIndexが0未満か、セクションの数以上です。 |
System.ArgumentException | 指定されたCellPosition.CellIndexまたはCellPosition.CellNameが、指定されたSection.Cells内に見つかりません。 または 指定されたCellを選択できません。 |
このプロパティの初期値は、現在のセルのターゲット位置です。
現在のセルのターゲット位置を変更するには、NewCellPositionプロパティの値を設定します。
NewCellPositionが表示領域にない場合は、そのセルが表示領域にスクロールされます。
void gcMultiRow1_NewCellPositionNeeded(object sender, NewCellPositionNeededEventArgs e) { // When user try to switch current cell to another row. // Control will check the 'State' is 'Delay' or not. If the 'State' is 'Delay' and // user didn't fill out any description, the current cell will change to 'Description' cell // in the same section, and pop up a message box to notify user fill out this cell. if (e.SectionIndex != e.NewCellPosition.SectionIndex) { object projectState = gcMultiRow1[e.SectionIndex,"State"].Value; object description = gcMultiRow1[e.SectionIndex, "Description"].Value; if (description == null || object.Equals(string.Empty, description)) { if(object.Equals(projectState, "Delay")) { MessageBox.Show("If project state is delay, you should fill out some description."); e.NewCellPosition = new CellPosition(e.SectionIndex, "Description"); } } } }
Private Sub gcMultiRow1_NewCellPositionNeeded(ByVal sender As Object, ByVal e As NewCellPositionNeededEventArgs) Handles gcMultiRow1.NewCellPositionNeeded ' When user try to switch current cell to another row. ' Control will check the 'State' is 'Delay' or not. If the 'State' is 'Delay' and ' user didn't fill out any description, the current cell will change to 'Description' cell ' in the same section, and pop up a message box to notify user fill out this cell. If e.SectionIndex <> e.NewCellPosition.SectionIndex Then Dim projectState As Object = gcMultiRow1(e.SectionIndex, "State").Value Dim description As Object = gcMultiRow1(e.SectionIndex, "Description").Value If description = Nothing OrElse Object.Equals(String.Empty, description) Then If Object.Equals(projectState, "Delay") Then MessageBox.Show("If project state is delay, you should fill out some description.") e.NewCellPosition = New CellPosition(e.SectionIndex, "Description") End If End If End If End Sub