巧用DataGridView控制元件構建快速輸入體驗
一個不錯的DataGridView資料視窗控制元件《DataGridView資料視窗控制元件開發方法及其原始碼提供下載》,這種控制元件在有些場合下,還是非常直觀的。因為,在一般要求客戶錄入資料的地方,一般有兩種途徑,其一是通過彈出一個新的視窗,在裡面列出各種需要輸入的要素,然後儲存的,如下圖所示;
其二就是直接在DataGridView中直接輸入。這兩種方式各有優劣,本文介紹採用該控制元件實現第二種模式的資料資料。如下圖所示
這種方式,直接通過在DataGridView中下拉選單或者文字框中輸入內容,每列的資料可以聯動或者做限制,實現使用者資料的約束及規範化。
控制元件只要接受了DataTable的DataSource之後,會根據列的HeadText內容,顯示錶格的標題及內容,應用還是比較直觀方便的。
#div_code img{border:0px;}<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->private void BindGridViewData(DataTable dt, DataTable dtNoRelation)
{
organTable = dt;
noRelationTable = dtNoRelation;
DataGridView dataGridView1 = new DataGridView();
this.groupBox1.Controls.Clear();
this.groupBox1.Controls.Add(dataGridView1);
dataGridView1.Dock = DockStyle.Fill;
dataGridView1.CellValueChanged +=new DataGridViewCellEventHandler(organDataGridView_CellValueChanged);
dataGridView1.UserDeletedRow += new DataGridViewRowEventHandler(organDataGridView_UserDeletedRow);
dataGridView1.AutoGenerateColumns = false;
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
DataGridViewDataWindowColumn col1 = new DataGridViewDataWindowColumn();
col1.HeaderText = "機構程式碼";
col1.Name = "機構程式碼";
//下拉選單的資料
col1.DataSource = GetDataTable(dtNoRelation);
dataGridView1.Columns.Add(col1);
DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn();
col2.HeaderText = "機構名稱";
col2.Name = "機構名稱";
col2.Width = 300;
col2.ReadOnly = true;
dataGridView1.Columns.Add(col2);
if (dt != null)
{
foreach (DataRow dr in dt.Rows)
{
string value = dr[0].ToString();
DataGridViewRow row = new DataGridViewRow();
DataGridViewDataWindowCell cell = new DataGridViewDataWindowCell();
cell.Value = value;
row.Cells.Add(cell);
cell.DropDownHeight = 400;
cell.DropDownWidth = 300;
DataGridViewTextBoxCell cell2 = new DataGridViewTextBoxCell();
cell2.Value = dr[1].ToString();
row.Cells.Add(cell2);
dataGridView1.Rows.Add(row);
}
}
}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->private void BindGridViewData(DataTable dt, DataTable dtNoRelation)
{
organTable = dt;
noRelationTable = dtNoRelation;
DataGridView dataGridView1 = new DataGridView();
this.groupBox1.Controls.Clear();
this.groupBox1.Controls.Add(dataGridView1);
dataGridView1.Dock = DockStyle.Fill;
dataGridView1.CellValueChanged +=new DataGridViewCellEventHandler(organDataGridView_CellValueChanged);
dataGridView1.UserDeletedRow += new DataGridViewRowEventHandler(organDataGridView_UserDeletedRow);
dataGridView1.AutoGenerateColumns = false;
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
DataGridViewDataWindowColumn col1 = new DataGridViewDataWindowColumn();
col1.HeaderText = "機構程式碼";
col1.Name = "機構程式碼";
//下拉選單的資料
col1.DataSource = GetDataTable(dtNoRelation);
dataGridView1.Columns.Add(col1);
DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn();
col2.HeaderText = "機構名稱";
col2.Name = "機構名稱";
col2.Width = 300;
col2.ReadOnly = true;
dataGridView1.Columns.Add(col2);
if (dt != null)
{
foreach (DataRow dr in dt.Rows)
{
string value = dr[0].ToString();
DataGridViewRow row = new DataGridViewRow();
DataGridViewDataWindowCell cell = new DataGridViewDataWindowCell();
cell.Value = value;
row.Cells.Add(cell);
cell.DropDownHeight = 400;
cell.DropDownWidth = 300;
DataGridViewTextBoxCell cell2 = new DataGridViewTextBoxCell();
cell2.Value = dr[1].ToString();
row.Cells.Add(cell2);
dataGridView1.Rows.Add(row);
}
}
}
相關文章
- DataGridView控制元件 1129View控制元件
- gitbook 入門教程之快速體驗Git
- 淺談遊戲體驗構建遊戲
- python中快速驗證輸入的是否為迴文Python
- 巧用 CSS 構建漸變彩色二維碼CSS
- 一文快速入門體驗 Hibernate
- 輕鬆構建遊戲登入能力,打造玩家流暢體驗遊戲
- 快速構建Hadoop的入門練手環境Hadoop
- 使用Cloud DB構建APP 快速入門 - iOS篇CloudAPPiOS
- pytorch入門2.2構建迴歸模型初體驗(開始訓練)PyTorch模型
- winform中可以摺疊的datagridview,自定義控制元件ORMView控制元件
- tkinter中entry輸入控制元件(四)控制元件
- 【模版】快速讀入/輸出
- vscode快速構建Flutter專案+熱載入除錯VSCodeFlutter除錯
- IXDC 2018 | 網際網路金融已入深水區 如何構建新體驗
- webpack快速構建專案Web
- Flutter 密碼輸入框 驗證碼輸入框Flutter密碼
- lapis的輸入驗證API
- 輸入表單驗證
- 如何在Mac上快速輸入特殊符號?Mac快速輸入特殊符號小技巧Mac符號
- 阿里雲有獎體驗:塊儲存快速入門阿里
- 人臉檢測中,如何構建輸入影像金字塔
- 登入驗證碼生成kaptcha(輸入驗證碼)APT
- GraphQL初體驗,Node.js構建GraphQL API指南Node.jsAPI
- Judo:使用無程式碼構建原生應用體驗
- 快速構建vue ui元件庫VueUI元件
- 如何快速構建React元件庫React元件
- APICloud+ cosClient快速構建APPAPICloudclientAPP
- Apache RocketMQ + Hudi 快速構建 LakehouseApacheMQ
- 快來體驗快速通道,netty中epoll傳輸協議詳解Netty協議
- WPF --- TextBox的輸入校驗
- Flutter 驗證碼輸入框Flutter
- Linux 按鍵輸入實驗Linux
- wpf中DatePicker控制元件只能輸入年月,只能輸入年份,限制日期選擇範圍控制元件
- YoloV5 快速體驗YOLO
- MQTT 協議快速體驗MQQT協議
- 快速入門:構建您的第一個 .NET Aspire 應用程式
- Mac電腦如何快速輸入圖示Mac
- Gradle快速構建Spring Boot專案GradleSpring Boot