<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>C# | ITとガジェットあれこれ</title>
	<atom:link href="https://sandambara.com/category/c/feed" rel="self" type="application/rss+xml" />
	<link>https://sandambara.com</link>
	<description>sandambara.com</description>
	<lastBuildDate>Sat, 04 Dec 2021 00:18:18 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://sandambara.com/wp-content/uploads/2021/03/icon.ico</url>
	<title>C# | ITとガジェットあれこれ</title>
	<link>https://sandambara.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>マイクロソフト謹製Microsoft Reportで帳票を作る</title>
		<link>https://sandambara.com/how-to-make-microsoftreport?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-make-microsoftreport</link>
					<comments>https://sandambara.com/how-to-make-microsoftreport#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Fri, 03 Dec 2021 09:00:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1948</guid>

					<description><![CDATA[<p>帳票は日本独自の文化と言われますが、ちょっとしたものでも印刷のニーズは結構ある気がします。 Active Reportsなど有償製品は高機能だけど高価。とはいえ、PrintDocumentをゴリゴリ書くのは結構大変ですよ [&#8230;]</p>
The post <a href="https://sandambara.com/how-to-make-microsoftreport">マイクロソフト謹製Microsoft Reportで帳票を作る</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>帳票は日本独自の文化と言われますが、ちょっとしたものでも印刷のニーズは結構ある気がします。</p>



<p>Active Reportsなど有償製品は高機能だけど高価。とはいえ、PrintDocumentをゴリゴリ書くのは結構大変ですよね。なにかいい方法ないかな・・・と探していた時に偶然見つけたのがMicrosoft Report（ReportViewer）。マイクロソフト謹製なのでVisual Studioとの相性も良さそう！と思ったのですが、意外に欲しい情報を見つけるのに苦労したので覚書として記します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">作業環境</a></li><li><a href="#toc2" tabindex="0">下準備1</a></li><li><a href="#toc3" tabindex="0">下準備2</a></li><li><a href="#toc4" tabindex="0">大雑把な流れ</a></li><li><a href="#toc5" tabindex="0">Form1の内容</a></li><li><a href="#toc6" tabindex="0">Form2の内容</a></li><li><a href="#toc7" tabindex="0">レポートの準備</a></li><li><a href="#toc8" tabindex="0">先人に感謝を捧げましょう</a></li><li><a href="#toc9" tabindex="0">Form2にレポートへ渡すパラメータをセットする</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">作業環境</span></h2>



<p>Windows 11 Pro＋Visual Studio 2019 Community（C#.NET）です。</p>



<h2 class="wp-block-heading"><span id="toc2">下準備1</span></h2>



<p>マイクロソフト謹製なのですが、素のVisual Studioでは使えません。拡張機能の管理を選択し「オンライン」のタブをクリックしたら「Microsoft Rdlc Report Designer for Visual Studio」を検索→インストールします。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="235" height="70" src="https://sandambara.com/wp-content/uploads/2021/12/image.png" alt="" class="wp-image-1950"/></figure>



<p>ウィザードに従うだけですので以後省略。</p>



<h2 class="wp-block-heading"><span id="toc3">下準備2</span></h2>



<p>WindowsFormアプリケーションで新たにプロジェクトを作成します（.NETのバージョンは4.8を選択しました）。続いてツール→NuGetパッケージマネージャーから「Microsoft.ReportingServices.ReportViewerControl.Winforms」を検索します。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="664" height="301" src="https://sandambara.com/wp-content/uploads/2021/12/image-1.png" alt="" class="wp-image-1951" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-1.png 664w, https://sandambara.com/wp-content/uploads/2021/12/image-1-300x136.png 300w" sizes="(max-width: 664px) 100vw, 664px" /></figure>



<p>こちらをインストールします。</p>



<figure class="wp-block-image size-large"><img decoding="async" width="954" height="203" src="https://sandambara.com/wp-content/uploads/2021/12/image-2.png" alt="" class="wp-image-1952" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-2.png 954w, https://sandambara.com/wp-content/uploads/2021/12/image-2-300x64.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-2-768x163.png 768w" sizes="(max-width: 954px) 100vw, 954px" /></figure>



<h2 class="wp-block-heading"><span id="toc4">大雑把な流れ</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="351" height="286" src="https://sandambara.com/wp-content/uploads/2021/12/image-4.png" alt="" class="wp-image-1954" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-4.png 351w, https://sandambara.com/wp-content/uploads/2021/12/image-4-300x244.png 300w" sizes="(max-width: 351px) 100vw, 351px" /></figure>



<p>Form2とReport1を追加。Form1にはボタンを1つ設置し、このボタンをクリックしたらレポート（Form2）が表示されるような仕掛けにします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="931" height="648" src="https://sandambara.com/wp-content/uploads/2021/12/image-3.png" alt="" class="wp-image-1953" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-3.png 931w, https://sandambara.com/wp-content/uploads/2021/12/image-3-300x209.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-3-768x535.png 768w" sizes="(max-width: 931px) 100vw, 931px" /></figure>



<h2 class="wp-block-heading"><span id="toc5">Form1の内容</span></h2>



<p>Button1_ClickでForm2を表示させます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="848" height="544" src="https://sandambara.com/wp-content/uploads/2021/12/image-5.png" alt="" class="wp-image-1955" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-5.png 848w, https://sandambara.com/wp-content/uploads/2021/12/image-5-300x192.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-5-768x493.png 768w" sizes="(max-width: 848px) 100vw, 848px" /></figure>



<pre class="wp-block-code"><code>namespace sandambara
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.Show();
        }
    }
}
</code></pre>



<h2 class="wp-block-heading"><span id="toc6">Form2の内容</span></h2>



<p>実際にレポートを表示させる部分（ReportViewer）をFormに設置します。</p>



<p>レポートを作成したことの無い方には伝わりにくいかもですが、Formが土台、その上にViewerがのっかっていて、その中にレポートが表示されるイメージです。テレビに例えるとFormが本体外枠、Viewerが画面、Reportが映像・・・と例えれば伝わるでしょうか？</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="318" height="234" src="https://sandambara.com/wp-content/uploads/2021/12/image-6.png" alt="" class="wp-image-1956" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-6.png 318w, https://sandambara.com/wp-content/uploads/2021/12/image-6-300x221.png 300w" sizes="(max-width: 318px) 100vw, 318px" /><figcaption>これをフォームに設置します</figcaption></figure>



<p>設置したら「親コンテナーにドッキングする」をクリックするとFormいっぱいにViewerが広がってくれます。Choose Reportはプロジェクトに追加しておいたReport1.rdlcを指定しておきましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="812" height="488" src="https://sandambara.com/wp-content/uploads/2021/12/image-9.png" alt="" class="wp-image-1960" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-9.png 812w, https://sandambara.com/wp-content/uploads/2021/12/image-9-300x180.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-9-768x462.png 768w" sizes="(max-width: 812px) 100vw, 812px" /><figcaption>これが</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="817" height="489" src="https://sandambara.com/wp-content/uploads/2021/12/image-8.png" alt="" class="wp-image-1958" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-8.png 817w, https://sandambara.com/wp-content/uploads/2021/12/image-8-300x180.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-8-768x460.png 768w" sizes="(max-width: 817px) 100vw, 817px" /><figcaption>こうなる</figcaption></figure>



<p>このときのコードはこんな感じです。</p>



<pre class="wp-block-code"><code>namespace sandambara
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            this.reportViewer1.RefreshReport();
        }

    }
}
</code></pre>



<h2 class="wp-block-heading"><span id="toc7">レポートの準備</span></h2>



<p>データセットを使ったレポートの作り方はたくさん見つけられるので、今回はレポート生成時に値を渡して表示させることをゴールとします。</p>



<p>まず、ソリューションエクスプローラーでReport1.rdlcを選択し、プロパティの「出力ディレクトリにコピー」を「常にコピー」へ変更します。</p>



<p>今Visual Studioの画面はこんな風になっていると思います。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="929" height="284" src="https://sandambara.com/wp-content/uploads/2021/12/image-10.png" alt="" class="wp-image-1961" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-10.png 929w, https://sandambara.com/wp-content/uploads/2021/12/image-10-300x92.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-10-768x235.png 768w" sizes="(max-width: 929px) 100vw, 929px" /></figure>



<p>今回はここへ３つの文字列を表示させます。</p>



<p>画面左側の「レポートデータ」の「新規」をクリック→パラメータを指定します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="675" height="549" src="https://sandambara.com/wp-content/uploads/2021/12/image-11.png" alt="" class="wp-image-1962" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-11.png 675w, https://sandambara.com/wp-content/uploads/2021/12/image-11-300x244.png 300w" sizes="(max-width: 675px) 100vw, 675px" /></figure>



<p>こんな画面が表示されますので、そのままOKをクリックします。これをあと２回繰り返してReportParameter1とReportParameter2、ReportParameter3を作成しましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="222" height="243" src="https://sandambara.com/wp-content/uploads/2021/12/image-12.png" alt="" class="wp-image-1964"/><figcaption>こんな感じになります</figcaption></figure>



<p>つぎに、受け取ったパラメータを表示するテキストボックスを配置します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="313" height="489" src="https://sandambara.com/wp-content/uploads/2021/12/image-13.png" alt="" class="wp-image-1965" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-13.png 313w, https://sandambara.com/wp-content/uploads/2021/12/image-13-192x300.png 192w" sizes="(max-width: 313px) 100vw, 313px" /><figcaption>これをレポート上に配置します</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="683" height="265" src="https://sandambara.com/wp-content/uploads/2021/12/image-14.png" alt="" class="wp-image-1966" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-14.png 683w, https://sandambara.com/wp-content/uploads/2021/12/image-14-300x116.png 300w" sizes="(max-width: 683px) 100vw, 683px" /><figcaption>テキストボックスを3つ設置しました</figcaption></figure>



<p>テキストボックスのフォントはArialがデフォルトになっています。日本語を表示できるよう何か適当なフォント（ＭＳ Ｐゴシックなど）に変更しておきましょう。</p>



<p>次に、先ほど作成したReportParameter1-3をそれぞれテキストボックスへドラッグアンドドロップします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="654" height="225" src="https://sandambara.com/wp-content/uploads/2021/12/image-15.png" alt="" class="wp-image-1967" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-15.png 654w, https://sandambara.com/wp-content/uploads/2021/12/image-15-300x103.png 300w" sizes="(max-width: 654px) 100vw, 654px" /></figure>



<p>以上でレポートの準備が整いました。続いてForm2（ReportViewer側）を仕上げます。</p>



<h2 class="wp-block-heading"><span id="toc8">先人に感謝を捧げましょう</span></h2>



<p>今回やりたいことがなかなか実現できずググり続けて数日。ここがなかったら折れていたと思います。多謝！<a href="http://aoplanning.com/csharp/csharp-repviw01.html">ReportViewerコントロール|Aoplanning</a></p>



<h2 class="wp-block-heading"><span id="toc9">Form2にレポートへ渡すパラメータをセットする</span></h2>



<p>Form2.csへusingを追加します。</p>



<pre class="wp-block-code"><code>using Microsoft.Reporting.WinForms;
</code></pre>



<p>続いてForm2_Loadをモディファイします。</p>



<pre class="wp-block-code"><code>
private void Form2_Load(object sender, EventArgs e)
{
    // レポートへ渡す文字列
    string _param1 = string.Empty;
    string _param2 = string.Empty;
    string _param3 = string.Empty;

    // ここにDBから値を取ってくる処理

    // DBからとってきた文字列を変数へ格納
    _param1 = "ほしいものリスト";
    _param2 = "生ビール";
    _param3 = "焼肉";

    // レポートファイル指定
    // Report1.rdlxのプロパティ→完全パスを参照
    reportViewer1.LocalReport.ReportPath = @"C:\Users\sandambara\source\repos\sandambara\sandambara\Report1.rdlc";
    
    // レポートファイルに渡すパラメーター
    ReportParameter&#91;] rpt = new ReportParameter&#91;3];

    // パラメータ値セット
    rpt&#91;0] = new ReportParameter("ReportParameter1", _param1);
    rpt&#91;1] = new ReportParameter("ReportParameter2", _param2);
    rpt&#91;2] = new ReportParameter("ReportParameter3", _param3);

    try
    {
        // パラメータ適用
        reportViewer1.LocalReport.SetParameters(rpt);
    }
    catch (Exception ex)
    {
        // レポートファイルが見つからないとここでエラーになります。
        MessageBox.Show(ex.Message.ToString(), "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
        this.Dispose();
        return;
    }

    // プレビュー表示
    reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);

    reportViewer1.RefreshReport();
}</code></pre>



<p>さあ、実行してみましょう！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="798" height="480" src="https://sandambara.com/wp-content/uploads/2021/12/image-17.png" alt="" class="wp-image-1970" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-17.png 798w, https://sandambara.com/wp-content/uploads/2021/12/image-17-300x180.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-17-768x462.png 768w" sizes="(max-width: 798px) 100vw, 798px" /><figcaption>ボタンをクリックしてみよう</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="799" height="484" src="https://sandambara.com/wp-content/uploads/2021/12/image-18.png" alt="" class="wp-image-1971" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-18.png 799w, https://sandambara.com/wp-content/uploads/2021/12/image-18-300x182.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-18-768x465.png 768w" sizes="(max-width: 799px) 100vw, 799px" /><figcaption>良く見えないので拡大してみると・・・</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="796" height="411" src="https://sandambara.com/wp-content/uploads/2021/12/image-19.png" alt="" class="wp-image-1972" srcset="https://sandambara.com/wp-content/uploads/2021/12/image-19.png 796w, https://sandambara.com/wp-content/uploads/2021/12/image-19-300x155.png 300w, https://sandambara.com/wp-content/uploads/2021/12/image-19-768x397.png 768w" sizes="(max-width: 796px) 100vw, 796px" /><figcaption>大成功！！！</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc10">まとめ</span></h2>



<p>全部終わってからCrystal Reportsの存在を思い出してブルーになりました。</p>The post <a href="https://sandambara.com/how-to-make-microsoftreport">マイクロソフト謹製Microsoft Reportで帳票を作る</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/how-to-make-microsoftreport/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>C#小ネタ（DataGridViewの中身をDataTableに投入する）</title>
		<link>https://sandambara.com/datagridview-to-datatable?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=datagridview-to-datatable</link>
					<comments>https://sandambara.com/datagridview-to-datatable#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 05:00:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1936</guid>

					<description><![CDATA[<p>物忘れが激しい自分に捧げる覚書パートツーです。逆はしょっちゅうやるのですが、「あれ？あれれれ？？」となったのでググりました。 目次 先人に感謝地道にやるしかなかったまとめ 先人に感謝 こちらを参考にさせて頂きました。良記 [&#8230;]</p>
The post <a href="https://sandambara.com/datagridview-to-datatable">C#小ネタ（DataGridViewの中身をDataTableに投入する）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>物忘れが激しい自分に捧げる覚書パートツーです。逆はしょっちゅうやるのですが、「あれ？あれれれ？？」となったのでググりました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">先人に感謝</a></li><li><a href="#toc2" tabindex="0">地道にやるしかなかった</a></li><li><a href="#toc3" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">先人に感謝</span></h2>



<p>こちらを参考にさせて頂きました。良記事に感謝です！</p>



<p><a rel="noopener" href="https://loosecarrot.com/2018/09/06/86/" target="_blank">DataGridViewをDataTableに変換 C# | 文系出身のSEですが、何か (loosecarrot.com)</a></p>



<h2 class="wp-block-heading"><span id="toc2">地道にやるしかなかった</span></h2>



<p>1セルずつ地道にやります。</p>



<pre class="wp-block-code"><code>DataTable dt = new DataTable();

// i：DataGridViewの列番号　j：DataGridViewの行番号
int i, j;

// DataTableに列を作ります
for(i=0; i&lt;DataGridView1.ColumnCount; i++)
{
    dt.Columns.Add(DataGridView1.Columns&#91;i].HeaderText);
}

// 行数分繰り返し
for(j=0; j&lt;DataGridView1.Rows.Count; j++)
{
    // DataTableの行作成
    DataRow dataRow = dt.NewRow();

    // 列数分繰り返し
    for (i = 0; i &lt; DataGridView1.Columns.Count; i++)
    {
        // j + 1 行目の i + 1 列列目をDataTableに投入
        dataRow&#91;i] = DataGridView1.Rows&#91;j].Cells&#91;i].Value;
    }

    // 行追加
    dt.Rows.InsertAt(dataRow, j);
}</code></pre>



<h2 class="wp-block-heading"><span id="toc3">まとめ</span></h2>



<p>クリップボードの内容をペーストするのなんかもそうですが、DataGridViewまわりの処理は需要ありそうなのに自分で実装するしかないのが残念なところです。</p>The post <a href="https://sandambara.com/datagridview-to-datatable">C#小ネタ（DataGridViewの中身をDataTableに投入する）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/datagridview-to-datatable/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>C#小ネタ（DataGridViewの行を手動で追加して値を入れる）</title>
		<link>https://sandambara.com/datagridview-rows-add?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=datagridview-rows-add</link>
					<comments>https://sandambara.com/datagridview-rows-add#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Mon, 29 Nov 2021 05:00:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1927</guid>

					<description><![CDATA[<p>DBから持ってきた値を表示させるのはしょっちゅうやるのですが、入力画面を作ってDataGridViewへ仮置きするのをたまにやろうとすると色々忘れているので自身の覚書です。 目次 列作成入力フォーム登録ボタンを押したとき [&#8230;]</p>
The post <a href="https://sandambara.com/datagridview-rows-add">C#小ネタ（DataGridViewの行を手動で追加して値を入れる）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>DBから持ってきた値を表示させるのはしょっちゅうやるのですが、入力画面を作ってDataGridViewへ仮置きするのをたまにやろうとすると色々忘れているので自身の覚書です。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">列作成</a></li><li><a href="#toc2" tabindex="0">入力フォーム</a></li><li><a href="#toc3" tabindex="0">登録ボタンを押したとき</a></li><li><a href="#toc4" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">列作成</span></h2>



<p>まずはDataGridViewの列を作成します。</p>



<pre class="wp-block-code"><code>// Form_Loadあたりに
// ごく簡素な名簿みたいなもの

// DataGridViewの列数
DataGridView1.ColumnCount = 4;

DataGridView1.Columns&#91;0].HeaderText = "項番";
DataGridView1.Columns&#91;1].HeaderText = "苗字";
DataGridView1.Columns&#91;2].HeaderText = "名前";
DataGridView1.Columns&#91;3].HeaderText = "年齢";

DataGridView1.Columns&#91;0].Width = 60;
DataGridView1.Columns&#91;1].Width = 150;
DataGridView1.Columns&#91;2].Width = 150;
DataGridView1.Columns&#91;3].Width = 60;

DataGridView1.Columns&#91;0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
DataGridView1.Columns&#91;1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
DataGridView1.Columns&#91;2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
DataGridView1.Columns&#91;3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;</code></pre>



<p>名簿ならフリガナ要るだろうとか、その辺はサンプルということで。</p>



<h2 class="wp-block-heading"><span id="toc2">入力フォーム</span></h2>



<p>項番、苗字、名前、年齢それぞれ入力用にTextBoxを用意しておきます。項番に数値nが入力されていたらDataGridViewのn行目のデータをTextBoxに呼び出して編集、入力されていなければ新規登録のイメージです。</p>



<h2 class="wp-block-heading"><span id="toc3">登録ボタンを押したとき</span></h2>



<p>ボタンのClickイベントへこんな感じで。入力値のチェックは先に済ませておきましょう。</p>



<pre class="wp-block-code"><code>// DataGridViewの何行目か
int i;

if (項番のTextBox.Text == string.Empty)
{
    // 新規登録
    DataGridView1.Rows.Add();
    i = DataGridView1.Rows.Count - 1;
}
else
{
    // 既存データの変更
    i = int.Parse(項番のTextBox.Text) - 1;
}

DataGridView1.Rows&#91;i].Cells&#91;0].Value = i + 1;
DataGridView1.Rows&#91;i].Cells&#91;1].Value = 苗字のTextBox.Text;
DataGridView1.Rows&#91;i].Cells&#91;2].Value = 名前のTextBox.Text;
DataGridView1.Rows&#91;i].Cells&#91;3].Value = int.Parse(年齢のTextBox.Text);

// 入力値クリア
項番のTextBox.Text = string.Empty;
苗字のTextBox.Text = string.Empty;
名前のTextBox.Text = string.Empty;
年齢のTextBox.Text = string.Empty;

// DataGridViewの行を非選択
DataGridView1.CurrentCell = null;</code></pre>



<h2 class="wp-block-heading"><span id="toc4">まとめ</span></h2>



<p>いつも忘れるおバカな自分へ助け舟として。</p>The post <a href="https://sandambara.com/datagridview-rows-add">C#小ネタ（DataGridViewの行を手動で追加して値を入れる）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/datagridview-rows-add/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
