タイプに応じて、予定が開始される時刻と、行の予定の長さが2〜3個ある列があります。開始時刻のツールチップを設定して、その予定の終了時刻が開始時刻+ columna.int + columnb.int+columnc.intと等しいことを示したいと思います。比較的簡単な方法で、予定を終了する時間をツールチップに表示させることは可能ですか?同じ行の別の列に基づいています。
助けてくれてありがとう、スコット・パットン
タイプに応じて、予定が開始される時刻と、行の予定の長さが2〜3個ある列があります。開始時刻のツールチップを設定して、その予定の終了時刻が開始時刻+ columna.int + columnb.int+columnc.intと等しいことを示したいと思います。比較的簡単な方法で、予定を終了する時間をツールチップに表示させることは可能ですか?同じ行の別の列に基づいています。
助けてくれてありがとう、スコット・パットン
プログラムでツールチップを、プログラムでアクセスできるものに設定できます。しかし、それが良いプログラミング手法かどうかはわかりません。ツールチップが表示されるまでに少し時間がかかります。
次の例では、datagridviewにデータを入力するためのデータセットを作成しています。日時は使用しませんでしたが、2列目と3列目の文字列の合計の最初の列のツールチップを作成しただけです。
DataTable dt = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
//put some data into a table
int[,] time = new int[,] { { 0, 4, 1 }, { 1, 5, 2 }, { 15, 10, 3 } };
dt.Columns.Add("x");
dt.Columns.Add("y");
dt.Columns.Add("z");
for (int i = 0; i < 3; i++)
{
DataRow dr = dt.NewRow();
dr[0] = time[i, 0];
dr[1] = time[i, 1];
dr[2] = time[i, 2];
dt.Rows.Add(dr);
}
dataGridView1.DataSource = dt;
}
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.ShowCellToolTips = true;
Point loc = dataGridView1.CurrentCellAddress;
if (loc.X == 0)
{
dataGridView1.CurrentCell.ToolTipText = String.Format("{0} ",
dt.Rows[loc.Y][loc.X + 1].ToString() + dt.Rows[loc.Y][loc.X + 2].ToString());
}
}
.MouseMove
あなたはイベントであなたのタスクを達成することができます.HitTest Method
private void dataGridView1_MouseMove(object sender, MouseEventArgs e)
{
var hitTest = dataGridView1.HitTest(e.X, e.Y);
if (hitTest.Type == DataGridViewHitTestType.ColumnHeader)
{
List<string> data = new List<string>();
//var getRows = dataGridView1.Rows.Cast<DataGridViewRow>().ToList();
//foreach (var item in getRows)
// data.Add(item.Cells[1].EditedFormattedValue.ToString());
if (dataGridView1.CurrentCell == null) return;
var currentRowIndex = dataGridView1.CurrentCell.RowIndex;
var getRows = dataGridView1.Rows[currentRowIndex].Cells.Cast<DataGridViewCell>().ToList();
foreach (var item in getRows)
data.Add(item.EditedFormattedValue.ToString());
string[] data1 = data.ToArray();
dataGridView1.Columns[hitTest.ColumnIndex].ToolTipText = string.Join(", ", data1);
}
}