6月 14

カレントセルを取得、設定する

DataGridViewの現在選択中のカレントセルを取得、設定するには
CurrentCellプロパティーを利用します。

            // カレントセルの値を参照
            dataGridView1.CurrentCell.Value;        // 値
            dataGridView1.CurrentCell.RowIndex;     // 行
            dataGridView1.CurrentCell.ColumnIndex;  // 列
            dataGridView1.CurrentCell.ReadOnly;     // 読み取り専用か否か

            // カレントセルを変更
            dataGridView1.CurrentCell = dataGridView1[0, 0];
6月 14

DataGridViewとは

DataGridViewとは非常に柔軟なコントロールで
スプレッドシートやExcelの表に近い使い方が可能です。

Formに貼り付けただけでは何も表示されませんが
DataGridViewのColumnsコレクションを編集することで列を追加可能です。

以下はデザイン画面でDataGridViewのColumnsコレクションを編集しているところです。

dgv_columns

列に追加できるコントロールは
・ボタン
・チェックボックス
・コンボボックス
・イメージ
・ラベル
・テキストボックス
となっています。

試しに一通り各コントロールを1種類1つずつ配置した結果が以下です。

dgv

入力と出力を兼ねているので
ひとつのコントロールで色々な事ができますが
反面、出来ることが多いので最初は使い方に戸惑うかもしれません。

実際の使い方は別節で個別に説明していきます。

6月 14

チェックされている項目を取得する

チェックされている項目を取得する場合は
CheckedItemsコレクションが便利です。

checkedlistbox

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 項目を追加(チェック状態を指定しなければデフォルトでOFF)
            checkedListBox1.Items.Add("りんご");

            // 項目を追加(チェックON)
            checkedListBox1.Items.Add("みかん", true);

            // 項目を追加(チェックOFF)
            checkedListBox1.Items.Add("もも", false);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // チェックされている項目を列挙
            string msg = string.Empty;
            foreach (string item in checkedListBox1.CheckedItems)
                msg += item + "\r\n";

            MessageBox.Show(msg, "選択された項目一覧");
        }
    }
}
6月 14

項目を追加する

CheckedListBoxはListBoxの項目にチェックボックスが付いたコントロールです。
使い方もListBoxと似ています。

項目を追加するには
ItemsコレクションのAdd関数を利用します。

■チェックされている項目を取得する

チェックされている項目を取得する場合は
CheckedItemsコレクションが便利です。

checkedlistbox

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 項目を追加(チェック状態を指定しなければデフォルトでOFF)
            checkedListBox1.Items.Add("りんご");

            // 項目を追加(チェックON)
            checkedListBox1.Items.Add("みかん", true);

            // 項目を追加(チェックOFF)
            checkedListBox1.Items.Add("もも", false);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // チェックされている項目を列挙
            string msg = string.Empty;
            foreach (string item in checkedListBox1.CheckedItems)
                msg += item + "\r\n";

            MessageBox.Show(msg, "選択された項目一覧");
        }
    }
}
6月 14

チェック状態の取得/設定(網掛け状態)

Checkedプロパティーの真偽値(true:false)を
取得/設定することで可能です。

また、これと連動して
CheckStateプロパティーの値も変更されます。

似たようなプロパティーですが
CheckStateプロパティーには
もう1つの目的があります。
これにIndeterminateを設定することで
チェックボックスを網掛け状態にすることができます。
(チェックはされているが、未確定な状態)

// チェック状態にする
checkBox1.Checked = true;

// チェック状態を不確定に(網掛け)
checkBox1.CheckState = CheckState.Indeterminate;
6月 14

外観をボタンのようにする

デフォルトでは
チェックボックスの外観は□のような矩形ですが
これをボタンのようにするしたい場合は
AppearanceプロパティーにButtonを指定します。

実行時に変更するケースはほとんど無いと思うので
デザイン時にプロパティーを変更します。

// 外観をボタンに変更
checkBox1.Appearance = Appearance.Button;

// 外観を元に戻す
checkBox1.Appearance = Appearance.Normal;
6月 14

コンテキストメニュー(右クリックメニュー)の使い方

コンテキストメニュー(右クリックメニュー)を使うには
ContextMenuStripコントロールをFormにドロップして配置します。

contextmenu

ここでは例としてForm上で右クリックするとContextMenuを表示し、
閉じるを選択するとFormをCloseしてみます。

まずContextMenuStripを表示させたいコントロール(ここではForm)の
ContextMenuStripプロパティーにContextMenuStrip1を設定します。

contextmenu_prop

これだけで、Form上で右クリックするとメニューが表示されます。

次に
ContextMenuStripの項目として【閉じる】をデザイナで入力し
【閉じる】メニューをダブルクリックするとClick時のイベントハンドラが追加されます。
後はこの中にメニュ選択時の処理を記述するだけです。

Form以外にも他コントロールやタスクトレイアイコンにも応用できます。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 閉じるToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
6月 14

項目を追加する / 項目を選択する / 選択されている項目を取得する

項目を追加する場合は
ItemsコレクションのAdd関数で項目を追加します。

項目を選択する場合は
SelectedIndexプロパティーに選択したい項目の0からはじまるインデックスを指定します。

選択されている項目を取得する場合も同様に
SelectedIndexを参照します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // テキスト部分を編集できないDropDownListにします
            comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

            // 項目を追加します
            comboBox1.Items.Add("りんご");
            comboBox1.Items.Add("みかん");
            comboBox1.Items.Add("すいか");

            // 初期状態でインデックス0番を選択します
            comboBox1.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 選択されていれば
            if (comboBox1.SelectedIndex >= 0)
            {
                // テキストを表示します
                MessageBox.Show(comboBox1.Text);
            }
        }
    }
}
6月 14

項目を追加する / 項目を選択する / 選択されている項目を取得する

項目を追加する場合は
ItemsコレクションのAdd関数で項目を追加します。

項目を選択する場合は
SelectedIndexプロパティーに選択したい項目の0からはじまるインデックスを指定します。

選択されている項目を取得する場合も同様に
SelectedIndexを参照します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // テキスト部分を編集できないDropDownListにします
            comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

            // 項目を追加します
            comboBox1.Items.Add("りんご");
            comboBox1.Items.Add("みかん");
            comboBox1.Items.Add("すいか");

            // 初期状態でインデックス0番を選択します
            comboBox1.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 選択されていれば
            if (comboBox1.SelectedIndex >= 0)
            {
                // テキストを表示します
                MessageBox.Show(comboBox1.Text);
            }
        }
    }
}
6月 14

項目を追加する / 項目を選択する / 選択されている項目を取得する

項目を追加する場合は
ItemsコレクションのAdd関数で項目を追加します。

項目を選択する場合は
SelectedIndexプロパティーに選択したい項目の0からはじまるインデックスを指定します。

選択されている項目を取得する場合も同様に
SelectedIndexを参照します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // テキスト部分を編集できないDropDownListにします
            comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;

            // 項目を追加します
            comboBox1.Items.Add("りんご");
            comboBox1.Items.Add("みかん");
            comboBox1.Items.Add("すいか");

            // 初期状態でインデックス0番を選択します
            comboBox1.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 選択されていれば
            if (comboBox1.SelectedIndex >= 0)
            {
                // テキストを表示します
                MessageBox.Show(comboBox1.Text);
            }
        }
    }
}