質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

解決済

c# 非表示の行 すべて再表示

svntall
svntall

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

3回答

0評価

0クリップ

277閲覧

投稿2021/11/25 03:09

編集2021/11/26 05:43

c#で非表示の行を再表示したくプログラムを考えましたがうまくいきません。
e.RowIndexで赤い波線がでてエラーとなってしまいます。

private void buttonRestore_Click(object sender, EventArgs e) { // 非表示の行を再表示 DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)dataGridView1[0, e.RowIndex]; if (cell.Value.ToString() == "False") { dataGridView1.Rows[e.RowIndex].SetValues(false); dataGridView1.Rows[e.RowIndex].Visible = true; }

e.RowIndexはdatagridviewのメソッドの中でしか使うことができないのでしょうか?

ボタンをクリックすることで、非表示にしたものを再表示する場合どのようなプロパティを使えばよいか検討がつかないので、ヒントをいただければ幸いです。

ーーーーーーーーーーーーーー
開発環境 visual studio 2022
OS: windows11
.NET framwork Windows form application

ーーーーーーーーーーーーーー

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

SurferOnWww

2021/11/25 03:15

情報不足です。せめて何を作っているか(WinForms? WPF? その他?)と開発環境(OS, Visual Studio のバージョン、Core か .NET Framework どっちかとそのバージョンなど)ぐらいは書きましょう。
svntall

2021/11/25 03:19

失礼しました!追記させていただきます!
SurferOnWww

2021/11/25 03:25

何を作っているか(WinForms? WPF? その他?)と開発環境(OS, Visual Studio のバージョン、Core か .NET Framework どっちかとそのバージョンなど)をお聞きしておるのですが? たぶん聞かれても分からなくて答えられないのであろうと想像してますが、そこは調べてください。
SurferOnWww

2021/11/25 03:33

質問に追記したのは、 > 開発環境 visual studio > OS: windows11 ですけど、何を作っているか(WinForms? WPF? その他?)、Visual Studio のバージョン、Core か .NET Framework どっちかとそのバージョンは分からないのですか?
BeatStar

2021/11/25 05:44

まず、C#では、CLI (コンソール系), Windows Forms, WPF`… といろんな種類が作れます。果てにはWeb系もできるようです。(試したことないけど) それぞれできる範囲が違ったり、作法自体も違ったりします。なのでどういうものを作っているかも書いた方がいいです。 それと、C#でできるのは C#が提供しているのではなく、.NET Frameworkや.NET Coreといったものが提供しています。C#は『クラス』や『for文』等の構造を提供しているだけです。 その.NET Frameworkとかのバージョンによっては使えるメソッドと使えないメソッドに極端な差が出ます。 なのでそういう情報はちゃんと出しましょう。
svntall

2021/11/25 06:24

なるほど!改めて追記します!
SurferOnWww

2021/11/25 06:48

buttonRestore_Click で特定の行だけ再表示したいのですか、それとも非表示になっているすべての行を再表示したいのですか?
svntall

2021/11/26 04:57 編集

返信ありがとうございます。 非表示になっている行すべてを再表示しようとしております。
SurferOnWww

2021/11/25 07:00

> 非表示になっている行すべてを再表示しようとしております! buttonRestore_Click で特定の行だけ再表示したいわけではなく、非表示になっているすべての行を再表示したいということを、質問欄を編集して追記願います。
SurferOnWww

2021/11/25 07:20

以下のようにしたらどうなりますか? 未検証ですが、試してみてください。 foreach (var row in dataGridView1.Rows) { ((DataGridViewRow)row).Visible = true; }
svntall

2021/11/25 07:34 編集

返信ありがとうございます。! いただいたコードで非表示にしていた行を再表示することができました 記述方法、大変勉強になりました。ありがとうございます!
SurferOnWww

2021/11/25 07:43

解決したようで何よりです。ところで消す方は問題なかったのでしょうか? 先頭に ▶ が表示されている行を消そうとすると例外がスローされると思うのですが・・・
svntall

2021/11/25 07:59

消す方というのは、非表示ということでしょうか? 行の非表示再表示に関しましては、問題なく動いております!
svntall

2021/11/26 04:56 編集

すいません! ▶の意味がやっとわかりました。こちらの ▶を非表示にしていたようです。 >先頭に ▶ が表示されている行を消そうとすると例外がスローされると思うのですが・・・ →問題なく動作します。ありがとうございます!
SurferOnWww

2021/11/25 23:19

質問者さん、解決したそうですので、このスレッドはクローズ願います。ご自分で解答欄に解決した方法・コードを書いて、それにマークをつけることでクローズできます。
svntall

2021/11/26 00:24

了解しました!

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。