• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:buttonの着色について)

buttonの着色について

このQ&Aのポイント
  • データテーブルからbutton名の結果を受けて、フォーム上のbuttonに色を付けたい。
  • エラーが発生し、型の変換ができないという問題が発生している。
  • どのようにすれば解決できるか教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>(型'System.Drawing.Color'を型'string'に暗黙的に変換できません。) プロパティとかは文字列に対して実施しているワケではないですから当然でしょう。 >どの様にしたら、宜しいでしょうか。 フォームに配置してあるコントロールかと思われますが、 各コントロールの名前(Nameプロパティ)を順番に調べていって見つける。 なんて方法があります。 まぁ、もっと便利な機能があったりしますけどね。 http://dobon.net/vb/dotnet/control/findcontrolbyname.html が参考になるでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C#で型変換

    DataTable T_DATATABLE = new DataTable(); DataRow[] T_DATATABLE_row; DataAdapter adp = new DataAdapter("SELECT id,Date FROM TABLE", CONN); adp.Fill(T_DATATABLE); //データテーブルにidとDateフィールドがあります。 //dtに下記で取得したダータを入れようと思っているのですが、 //System.Datetimeに変換することはできませんと表示されます。 DateTime dt = T_DATATABLE.Rows[0]["Date"]; どのようにすれば、型変換をすることができるでしょうか? string dt = (string)T_DATATABLE.Rows[0]["Date"]; string dt = (string)T_DATATABLE.Rows[0]["Date"].toString; としてもできません・・・ ご教授お願い致します!

  • DataSet(DataTable)の使い方

    GridViewやListViewなどに動的にデータを追加していきたいので、 DataTableを使おうと思いました。 下記、(1)のようにPageLoadイベントで1行追加することはできたのですが、 ボタンを押すごとに、1行ずつ追加していきたいので(2)のように修正したのですが、 ボタンを押したときのポストバックで、DataSetもDataTableもnullになってしまい、 行の追加ができません。 ボタンを押すごとにどんどん行を追加していきたいのですが、このような場合は どのようにDataSetもDataTableを保持しておけば良いのでしょうか。 (1) public partial class WebForm1 : System.Web.UI.Page { int count = 0; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataSet dS = new DataSet("dS"); DataTable dT = new DataTable("dT"); // データテーブル カラム作成 dT.Columns.Add("no", typeof(int)); dT.Columns.Add("name", typeof(string)); dT.Columns.Add("kind", typeof(string)); dT.Columns.Add("time", typeof(int)); dS.Tables.Add(dT); DataRow dR = dT.NewRow(); dR["no"] = count; dR["name"] = count.ToString(); dR["kind"] = count.ToString(); dR["time"] = count; dT.Rows.Add(dR); // リストビュー データソース選択 ListView2.DataSource = dS; ListView2.DataBind(); } } } (2) public partial class WebForm2 : System.Web.UI.Page { int count = 0; DataSet dS; DataTable dT; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { dS = new DataSet("dS"); dT = new DataTable("dT"); // データテーブル カラム作成 dT.Columns.Add("no", typeof(int)); dT.Columns.Add("name", typeof(string)); dT.Columns.Add("kind", typeof(string)); dT.Columns.Add("time", typeof(int)); dS.Tables.Add(dT); } } protected void Button1_Click(object sender, EventArgs e) { count = count + 1; DataRow dR = dT.NewRow(); dR["no"] = count; dR["name"] = count.ToString(); dR["kind"] = count.ToString(); dR["time"] = count; dT.Rows.Add(dR); // リストビュー データソース選択 ListView2.DataSource = dS; ListView2.DataBind(); } }

  • System::Drawing::Color::XXXXを変数に代入可能?

    連続で質問するのも申し訳ないのですが・・・ VS2005 C++ Expressを使ってWindowsフォームアプリケーションを作っています。(C++/CLI) ボタンなどのフォームのプロパティに、色を指定するものがあると思いますが、例えばBackColorを白に変更したい場合、 this->button1->BackColor = System::Drawing::Color::White; のように書けると思います。 この、「System::Drawing::Color::White」の部分を変数のようにして記述したいのですが、どのように宣言した型を使用すればよいのでしょうか? 例えば仮に「System::Drawing::Color::White」がString文字列であれば、 void func1(int choice){ String^ hoge;   if(!choice){     hoge = System::Drawing::Color::White;   } else {     hoge = System::Drawing::Color::Red;   }   this->button1->BackColor = hoge; } こんな風にすると、func1(0);と呼ばれるとボタンの背景が白くなり、0以外の引数だと赤くなると思います。 ですが、System::Drawing::Color::XXXはStringではないのでできません。 この場合、hogeをどのような形で定義すればいいのでしょうか? あるいは別の方法がありますでしょうか? よろしくお願いします。

  • 変数の型について

    お世話になります。 Oracle11gと .NET C#で開発をしております初心者です。 オラクルから得たデータをSPREADに表示しており、 そして、表示した表の「合計」列で0より大きい数字のセル に色を付けようとしているのですが、 実は、データの中身は違うのですが、表形式が全く同じ シートがsheet2からsheet5まで全部で5枚有り、下記の 様な記述を1回で済ませたいと思っており、sheet1の部分を 変数化してfor{ }でループさせようとしたのですが、 変数化させる型が分かりません。 stringの変数でやろうとしたらエラーになりました。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。               記 int gouKei = Spread.FindColumnIndex(sheet1, "合計");   for (int i = 0; i < sheet1.Rows.Count; i++)     { if (int.Parse(sheet1.Cells[i, gouKei].Text) > 0) {         sheet1.Cells[i, gouKei].BackColor = Color.LightCyan;       }     }

  • VB.NETで、配列をテーブルに変換する。

    VB.NETで、一次元配列string()にあるデータを、DataTableに変換 したいのですが、「型'String'の値を'System,Data,DataTable'に変換できません。」 と、エラーが発生してしまいます。 s1に、配列データが入っています。 Dim dt As DataTable Dim cnt As Integer Dim i As Integer dt = New DataTable count = s1.Length For i = 0 To cnt - 1 dt = CType(s1(i), DataTable) Next 解決方法が見つからず、行き詰っております。 宜しくお願い致します。

  • DataTableで重複行を削除したい

    こんにちは。 DataTableで重複した行を削除するプログラムが作れず悩んでいます。 もしよろしければ、教えてもらえないでしょうか? 例えば下記のようなDataTableのとき。 ID CD ------------- 5  A1 6  A2 8  A3 9  A4 10  A5 5  A6 10  A7 NULL A8 NULL A9 NULL A10 ------------- 下記のようにしたいと思っています。 ID CD ------------- 5  A1 6  A2 8  A3 9  A4 10  A5 NULL A8 ------------- 重複しているレコードは最初にヒットしたものを残します。 そこで下記のようなプログラムを書いてみたのですが、駄目でした。 ' 重複行を削除する For i = 0 To DataTable.Rows.Count - 1 Index = temp.IndexOf(DataTable.Rows(i).Item("id")) If Index = -1 Then temp.Add(DataTable.Rows(i).Item("id")) Else dr = DataTable.Rows(i) DataTable.Rows.Remove(dr) If i = DataTable.Rows.Count - 1 Then Exit For End If i = i - 1 End If Next どなたか分かる方、よろしくお願いいたします。

  • 配列のSession格納、及び取得方法について

    お世話になります。 現在Visual Studio 2005でプログラム作成中です。 質問内容は、 配列(文字列を格納)をSessionに渡し、次ページでその配列の値を取得できるかという点です。 ***(a.aspx.vb)抜粋*** Dim a() As String Redim a(DataTable1.Rows.Count) For i As Integer 0 to DataTable1.Rows.Count - 1 a(i) = CType(DataTable1.Rows(i).Item(0)) Next Session("a.list") = a(DataTable1.Rows.Count) Session("a.count") = DataTable1.Rows.Count ***(b.aspx)抜粋*** Dim b() As String = CType(Session("a.list"), String) Dim bCount as integer = CType(Session("a.count"),Integer) Dim Name as String For i As Integer 0 To bCount Name = CType(b(i),String) Next としているのですが、取得できません。 配列に格納されたものをSessionに格納し、取得することは可能なのでしょうか。 また、その他に適切なものがあればご教授ください。 よろしくお願いいたします。

  • DataTableに入っているデータを全てinsertしたい!(C#)

    はじめまして、okwebsamaです。 さっそく質問なのですが、 質問タイトルのままですが、DataTableに入っているデータを全てinsertしたいのです。 insert先のテーブルは、DataTableと同じ列名をもっています。 コード DataTable d; for(int i = 1; i <= d.Rows.Count; i++){ みたいな感じで作っていたんですが、ここから先が思いつきませんでした。 どなたかよろしくお願いします!!

  • VBの Datagridview 行削除コード

    VB2010でコーディングしています。(VB初心者です。) ネットでDatagridview 行削除コードを調べてボタンに実装したんですが、一回目は削除できるんですが 二回目が削除できません。(削除後にデータを再構築できていない?) ご教授お願いします。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim DT As New DataTable DT = DirectCast(Me.DGV.DataSource, DataTable) Dim 削除 As Boolean = False '選択行の取得 For Each r As DataGridViewRow In Me.DGV.SelectedRows      Dim ID As String = DT.Rows(r.Index).Item("ID").ToString      (その他の処理) 'リスト上削除 Me.DGV.Rows.RemoveAt(r.Index) Next r End Sub

  • VB2010で時刻表記変換

    独学でVB2010Expressを使用しています。 あるCSVからADOを使用してデータを取得し、Accessに転載しているのですが、そのデータで日付と時間のフィールドがあるのですが各々以下のような表示(『2012/04/02』の場合→『20120402』、『12:32:50』の場合→『123250』)なので逆の変換をした上で『2012/04/02 12:32:50』とAccessに格納したいのですが『StringからDoubleに変換できません』的なエラーが出てしまします?(全部String型のつもりなんですが) 色々調べたのですが、うまくいきません。ご教授お願いします。 下記のコードはデータテーブル(DT)に変換前の『日』・『時刻』値をを格納したものを使用しています。 iはFOR NEXTでループさせています。 OleCmd.Parameters.Add("@DateTime", SqlDbType.Date).Value OleCmd.Parameters("@DateTime").Value = Date.Parse(CInt(DT.Rows(i)("日")).ToString("0000/00/00")) + " " + CInt(DT.Rows(i)("時刻")) \ 10000 + ":" + (CInt(DT.Rows(i)("時刻")) Mod 10000) \ 100.ToString("00") + ":" + (CInt(DT.Rows(i)("時刻")) Mod 10000) Mod 100.ToString("00")