C# datagridview、datagrid、GridControl增加行号

2021-11-01 10:52:33 浏览数 (1)

01

WinForm中datagridview增加行号

在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加如下代码:

代码语言:javascript复制
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            try
            {
                for (int i = 0; i < dataGridView1.Rows.Count; i  )
                    this.dataGridView1.Rows[i].HeaderCell.Value = (i   1).ToString();
            }
            catch
            {
                MessageBox.Show("处理异常:表格行标题添加异常");
            }
        }

这样表格中每次有新行增添就会被自动打标行号.

02

WPF中datagrid增加行号

WPF类似WinForm中datagridview的表格控件是datagrid,我们可以将行标题添加代码写在LoadingRow事件中:

①附件事件:

一般是在xmal窗体的cs初始化类中:

代码语言:javascript复制
DG.LoadingRow  = new EventHandler<DataGridRowEventArgs>(DG_LoadingRow);

CM框架mvvm模式下:

代码语言:javascript复制
[Event LoadingRow]=[DG_LoadingRow($source,$eventArgs)]"

DG_LoadingRow事件如下:

代码语言:javascript复制
private void DG_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.Header = e.Row.GetIndex()   1;
        }

03

WPF dev控件GridControl增加行号

dev控件GridControl没有行增添增添事件,我们可以用下面的方法去做:

增加控件引用空间

代码语言:javascript复制
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
代码语言:javascript复制
<dxg:GridControl Name="grid" AutoGenerateColumns="AddNew">
   <dxg:GridControl.View>
        <dxg:TableView RowIndicatorContentTemplate="{StaticResource rowIndicatorContentTemplate}"/>
   </dxg:GridControl.View>
</dxg:GridControl

定义模板资源

代码语言:javascript复制
<UserControl.Resources>
        <DataTemplate x:Key="rowIndicatorContentTemplate">
            <StackPanel VerticalAlignment="Stretch"
                        HorizontalAlignment="Stretch">
                <TextBlock Text="{Binding Path=RowHandle.Value}"
                           TextAlignment="Center"
                           Foreground="Gray"/>
            </StackPanel>
        </DataTemplate>
    </UserControl.Resources>

0 人点赞