C#ののWinForm DataGridViewのスキルの概要

C#ののWinFormのDataGridView  スキルの概要 

1 最初の空白の列は表示されません
RowHeaderVisible プロパティがに設定されている偽 

2. クリックセル行全体を選択する
SelectinModelの  プロパティFullRowSelect
RowSelectinModelのプロパティ
またはでCellClickのイベントがあってもよい         @ 選択行全体
プライベートボイドdataGridView1_CellClick(オブジェクト送信者、DataGridViewCellEventArgs E)
{
//e.RowIndex> -1 、さもなければクリックヘッダが呼び出される
場合(dataGridView1.Rows.Count> 0 && e.RowIndex> -1)
{
//MessageBox.Show(e.RowIndex.ToString());
dataGridView1.Rowsは[e.RowIndex] = trueに.selected;
}
}
3. 追加ボタンの画像ボタンバーのイベントを
設定したいテキストを表示するためのボタンのテキストプロパティを。デフォルトでは値ではありません。しかし、なぜ分からない  DataPropertyName バインドされたフィールドが表示されていません。だから、私は取得したいですIDの値は、唯一の他の列に記録コグニザント。
// ボタンイベント
プライベートボイドdataGridView1_CellContentClick(オブジェクト送信者、DataGridViewCellEventArgs E)
{
IF(e.ColumnIndex == 1)
{
MessageBox.Show(dataGridView1.Rows [e.RowIndex] .Cells .Value.ToString()[1])。
}
}
4. 選択された行の外側に作られた追加ボタン
プライベートボイドのbutton1_Click(SENDERオブジェクト、のEventArgs E)
{
IF(dataGridView1.SelectedRows.Count> 0)
{
MessageBox.Show(dataGridView1.SelectedRows [0] .Cells [1] .Valueの。 ToStringメソッド());
}
}
5. 他の設定。
:複数行を許可するかどうかを選択します複数選択を 
自動的にフィールドのデータテーブルをバインドしないでください。
最後に、上側の適応の幅に亘る幅を聞かせて:設定が再分類AutoSizeModelを埋めます

6
//のDataGridViewは、  カラム動作削除
プライベートボイドdataGridView1_CellClick(オブジェクト送信者、DataGridViewCellEventArgs E)
{
IF(e.ColumnIndex == -1)
{
;リターン
}
ストリングアクション= dataGridView1.Columns [e.ColumnIndex] .nameのを; // 操作タイプ
(アクション== "DelOrder")IF
{
IF(MessageBox.Show( " それを削除してOK ?"、 " ヒント"、MessageBoxButtons.OKCancel、MessageBoxIcon.Warning)== DialogResult.OK)
{                 
文字列IDを= dataGridView1.Rows 【e.RowIndex] .Cells .Value.ToString()[1];
SellBiClass.DelRules(ID)。

                }
}
Newload();
}

ボイドnewload()
{           
dataGridView1.DataSource SellBiClass.GetRules =();
}
7 //のDataGridView。  各列フォーマット
専用空隙dataGridView1_CellFormatting(オブジェクト送信者、DataGridViewCellFormattingEventArgs E)を
{
e.ColumnIndex ==(IF 7。 )// どの列
{
IF(e.Value.ToString()==) "1 "
{
e.Value =" 特定の比率";              
}

{
e.Value =" デフォルトのスケール";
e.CellStyle.ForeColor =カラー.red;
}
}

        }
8   得られたDataGridViewの  レコードの主キーID this.dataGridView1 [ 第一列、this.dataGridView1.CurrentCell.RowIndex] .Value.ToString()
図9は  示していないdataGridView1 最終行ブランク  偽= dataGridView1.AllowUserToAddRowsと、  それが上に設けられています黒い髪への声明

10のいるContextMenuStripの  プロパティ:ノートが表示されたときに、ショートカットコントロールを右クリックします

11  导出エクセルプライベートボイドpictureBox4_Click(オブジェクト送信者、のEventArgs電子)
{
#region  导出
IF(dataGridView1.Rows.Count> 0)
{
SaveFileDialog saveFileDialog =新しいSaveFileDialog()。
saveFileDialog.DefaultExtは= "XLS"。
saveFileDialog.Filter = "EXCEL 文件(* .XLS)| * .XLS"。
saveFileDialog.FilterIndex = 0;
saveFileDialog.FileName = " 客户信息"。
saveFileDialog.RestoreDirectory =はtrue。
saveFileDialog.CreatePrompt =はtrue。
saveFileDialog.Title = " 导出到EXCEL"。
saveFileDialog.ShowDialog();
(saveFileDialog.FileName == "")であれば
リターン。
ストリームmyStream;
myStream = saveFileDialog.OpenFile()。
StreamWriterのSW =新しいのStreamWriter(myStream、System.Text.Encoding.GetEncoding(-0));
文字列str = "";
してみてください
{
(int型私= 0;私のために、<dataGridView1.ColumnCount私は++)
{
場合(I> 0)
{
+ = "\ tの" STR。
}
STR + = dataGridView1.Columns [I] .HeaderText。
}
sw.WriteLine(STR)。
(J ++; J <dataGridView1.Rows.Count INT J = 0)のための
{
ストリングtempStr = "";
用(int型のk = 0; K <dataGridView1.Columns.Countあり、k ++)
{
IF(K> 0)
{
tempStr + = "\ tの"。
}
tempStr + = dataGridView1.Rows [J] .Cells [K] .Value.ToString()。
}
SW。
}
sw.Close()。
myStream.Close();
}
キャッチ(例外例)
{
MessageBox.Show(ex.ToString())。
}
最後に
{
sw.Close()。
myStream.Close();
}
}
#endregion
}

12 レコードの合計数の計算  (dataGridView1.Rows.Count> 0)dataGridView1.Rows.Count> -1 ヘッダー行を含みます

13 使用して、ボタンコントロールが修正されるのDataGridViewに  データ線または列削除
専用空隙pictureBox2_Click(SENDERオブジェクト、のEventArgs E)
{
#regionの  割り当てを
IF(dataGridView1.Rows.Count> 0)
{
EMPINFO EMPINFO新しい新しいEMPINFO =();
int型のインデックス= dataGridView1.CurrentRow.Index。

                // 记录复制到文本框
empInfo.EmpId = dataGridView1.Rows [インデックス] .Cells [0] .Value.ToString()。
empInfo.EmpName = dataGridView1.Rows [インデックス] .Cells [1] .Value.ToString()。
empInfo.EmpSex = dataGridView1.Rows [インデックス] .Cells [2] .Value.ToString()。
empInfo.EmpPhone = dataGridView1.Rows [インデックス] .Cells [3] .Value.ToString()。
empInfo.EmpDate = Convert.ToDateTime(dataGridView1.Rows [インデックス] .Cells [4] .Valueの)。
empInfo.EmpPhone = dataGridView1.Rows [インデックス] .Cells [5] .Value.ToString()。
empInfo.EmpEdu = dataGridView1.Rows [インデックス] .Cells [6] .Value.ToString()。
empInfo.EmpMarriage = dataGridView1.Rows [インデックス] .Cells [7] .Value.ToString()。
empInfo.EmpBirth = Convert.ToDateTime(dataGridView1.Rows [インデックス] .Cells [8] .Value.ToString())。
empInfo.EmpCard = dataGridView1.Rows [インデックス] .Cells [9] .Value.ToString()。
empInfo.EmpAddress = dataGridView1.Rows [インデックス] .Cells [10] .Value.ToString()。
empInfo.EmpRemark = dataGridView1.Rows [インデックス] .Cells [11] .Value.ToString()。
EmpNews empNews =新しいEmpNews(EMPINFO)。
empNews.ShowDialog();
dataGridView1.DataSource = HXX.SeleEmp()。
}
#endregion
}

ボイドpictureBox3_Clickプライベート(SENDERオブジェクト、のEventArgs E)
{
#regionが  除去
IF(dataGridView1.Rows.Count> 0)
{
int型のインデックス= dataGridView1.CurrentRow.Indexと、
文字列Empld dataGridView1.Rowsは= [インデックス] .Cells [0] .Valueの;)(.ToString
IF(MessageBox.Show( " !削除され、復元することができない"、 " メッセージ"、MessageBoxButtons.OKCancel、MessageBoxIcon.Warning)== DialogResult.OK)
{
HXX.deleEmp(EMPID);
dataGridView1.DataSource HXX.SeleEmpは=();
}
}
#endregion
}

から引用した:http://limingloved.blog.163.com/blog/static/132297658201022454929764/ 

 

ます。https://www.cnblogs.com/baishiying/archive/2012/08/17/2644233.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33968104/article/details/93439961