WinformsのDataGridビューの最初の行の最初の2つの列に文字列を含むプレースホルダを表示する必要があります。プレースホルダは、DataGridが空のときに表示されます。DataGridViewセルにプレースホルダテキストを表示
答えて
あなたは自分をCellPainting
イベントを処理し、プレースホルダを描画する必要があります。
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex < 0 || e.ColumnIndex < 0) /*If a header cell*/
return;
if (!(e.ColumnIndex == 0 || e.ColumnIndex == 1) /*If not our desired columns*/
return;
if(e.Value == null || e.Value == DBNull.Value) /*If value is null*/
{
e.Paint(e.CellBounds, DataGridViewPaintParts.All
& ~(DataGridViewPaintParts.ContentForeground));
TextRenderer.DrawText(e.Graphics, "Enter a value", e.CellStyle.Font,
e.CellBounds, SystemColors.GrayText, TextFormatFlags.Left);
e.Handled = true;
}
}
これは正しいです。 –
ヘルプがたくさんあります – biff
だから、あなたがこの(Textbox
の作業)を改善し、dataGrid.Text
のために変更することができます。
Textbox myTxtbx = new Textbox();
myTxtbx.Text = "Enter text here...";
myTxtbx.GotFocus += GotFocus.EventHandle(RemoveText);
myTxtbx.LostFocus += LostFocus.EventHandle(AddText);
public void RemoveText(object sender, EventArgs e)
{
if (myTxtbx.Text == "Enter text here...") {
myTxtbx.Text = "";
}
}
public void AddText(object sender, EventArgs e)
{
if(String.IsNullOrWhiteSpace(myTxtbx.Text))
myTxtbx.Text = "Enter text here...";
}
注:文字列myTxtbx.Text = "Enter text here...";
中とif (myTxtbx.Text == "Enter text here...")
「ここにテキストを入力します... "は等しくなければなりません。
** 1)**編集モードに入る前に 'TextBox'がありません。 ** 2)** TextBoxにテキストを割り当てるべきではありません。あなたはペイントプレースホルダ –
私の答えは最高ではありませんが、私は使用のアイデアを書いた。 –
- 1. WordPress:ポストフォーマットによるプレースホルダテキストの表示
- 2. mysqlデータベースのカラムにnullセルを検索し、datagridviewに表示
- 3. VB.NET - datagridviewの左上隅のセルを非表示にする
- 4. 特定のセル値を持つ行を非表示DataGridView C#
- 5. DataGridviewセルを右クリックしてコンテキストメニューを表示する方法
- 6. DataGridViewに(姓、名)を表示
- 7. DataGridViewセル編集
- 8. DataGridViewのセルにのみ
- 9. DataGridViewでスクロールバーを非表示にする
- 10. DataGridViewComboBox - DataGridViewに 'InActive'値を表示
- 11. DataGridviewにJSONオブジェクト配列を表示
- 12. C#プログラムからDataGridViewにデータを表示
- 13. データベースからDataGridViewにデータを表示
- 14. DataGridViewに複雑なJSONを表示
- 15. DataGridViewの総セル数
- 16. のDataGridViewエディット・セルは
- 17. VB - datagridviewのグラフ表示
- 18. DataGridView行の強調表示
- 19. 最初の行のみを表示する複数行のdatagridviewセル
- 20. DataGridViewの新しい行の最初の表示セルを選択します。
- 21. DataGridView、大きなセル:コンテンツが完全に表示されず、スクロールしているセルがスキップされる
- 22. DataGridViewセルをループする
- 23. DataGridViewに.bmpが表示されない
- 24. DataGridViewにセルデータが表示されない
- 25. 親datatableを1つのdatagridviewに表示し、子のdatatable要素を別のdatagridviewに表示しますか?
- 26. jQuery Mobile 1.1.1カスタムセレクトメニュー - プレースホルダテキストが表示されない
- 27. htmlの表のセルにリンクを表示
- 28. DataGridView - "セル選択スタイル" - セルの編集
- 29. DataGridViewのデータベースから画像を表示
- 30. 左の列を非表示DataGridView
あなたが本当にLabelコントロールを意味しますか?または、単に2つのセルのテキスト値を設定したいですか? – TaW
実際に私はそれらのセルにplaceholderとしてラベルを配置しようとしています。そうすれば、datagridviewが空であれば、それらのセルに表示することができます。 – biff
あなたの新しいコメントに基づいて、質問のタイトルと説明を変更してください。最初の2列のプレースホルダーのテキストを描画します。また、ボタンをクリックする必要はないようですが、セルが空のときにセルに表示したいだけです。 –