• 締切済み

DataGridのFont

VB.Net2003 の初心者です。 DataGridの指定セルのFontを変更することはできないのでしょうか? Dim tblStyle As DataGridTableStyle Dim clmStyle As DataGridTextBoxColumn clmStyle = New TestDataGrid tblStyle.GridColumnStyles.Add(clmStyle) With clmStyle   .MappingName = "Test"   .Width = 45   .NullText = Nothing   .Alignment = HorizontalAlignment.Right   .Format = "0.0" .TextBox.Font.Bold = True  End With と書いた場合「プロパティ 'Bold' は 'ReadOnly' です。」というエラーになってしまいます。なにか良い方法をご存知の方がいらっしゃいましたら教えていただけないでしょうか。

みんなの回答

回答No.1

フォーカスを持っているときだけでよいのであれば↓ .TextBox.Font = New Font(.TextBox.Font, FontStyle.Bold Or FontStyle.Italic Or FontStyle.Strikeout)

wingtodo
質問者

お礼

お礼が遅れて申し訳ありません。 回答ありがとうございました。参考にさせていただきます。 フォーカスを持っていないときは難しいのですね。

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

関連するQ&A

  • DataGridのReadOnlyについて

    こんにちは いつもお世話になっております。 VB.NET(2003)で、DataGridにデータを表示して、編集-更新する処理を行っています。 表示ボタンを押したら表示され、更新ボタンで更新される動作です。 表示方法はDataGridTextBoxColumnのReadOnly=TrueにしたものをDataTableにADDし、 これをDataGrid.DataSourceにセットして表示させています。 そして、クリアボタン押したときに dtb = New DataTable 'グリッドに表示 DataGrid.DataSource = dtb というようにDataTableを初期化してクリアしているのですが このときDataGrid上のTextBoxにカーソルがあると そのTextがクリアされず表示されたままになってしまいます。 ReadOnlyですが、一応カーソルは当たるようにしたいのです。 表示されたままになっているのは、クリアの方法がまずいのでしょうか? すみませんが、どなたか教えていただけませんでしょうか?

  • DataGrid(DataSet?)で列幅調整

    VB.NET 2002使用 フォーム上にDataGridコントロールを貼付け Form_Load()内に以下のように記述し、SQLを使用してデータを表示させるようにしていますが、 列幅がデフォルト?になっているようで変更ができません。 どのようなコードを記述すれば変更ができるのでしょうか。 MSDNやWEBサンプル(dobon.net)を参考にしてダメでした。 DataGridプロパティのDataGridTableStyleのコレクション内を色々さわってみてもダメ。 DataGridの設定・使用方をよく分かっていないのが問題なんだと思うのですが、「こういう記述をすればいい」というのがお分かりの方がいらっしゃいましたら教えてください。 <記述したコード(一部)> Public dst As New DataSet() Private Sub Form1_Load(省略) Handles MyBase.Load sql = "select 列1,列2 from テーブル" Dim myConnection ... Dim myCommand As New OleDb.OleDbDataAdapter(ssql, myConnection) dst.Clear() myCommand.Fill(dst) 'データセットにデータ取込み DataGrid1.DataSource = dst.Tables(0) 'DataGridにデータ取込み myCommand = Nothing myConnection.Close() 'データベース閉じる myConnection = Nothing Dim ts As New DataGridTableStyle() ts.MappingName = "DataTable1" 'サンプルからそのまま流用 Dim cs1 DataGridTextBoxColumn cs1 = New DataGridTextBoxColumn() cs1.MappingName="Column1" cs1.width = 200 ts.GridColumnStyles.Add(cs1) Dim cs2 DataGridTextBoxColumn cs2.MappingName="Column1" cs2 = New DataGridTextBoxColumn() cs2.width = 300 ts.GridColumnStyles.Add(cs2) DataGrid1.TableStyles.Add(ts) End sub

  • DataGridの使用方法を教えてください

    VB.NET2002で表形式で表示(参照のみ)させたいのですが,FlexGridはないようでDATAGridを使用するように書いてありましたが, DATAGridの使用方法がよく分かりません. どのような手順をふんでコードを記述するのか教えてください. 1,フォームにDATAGrid1を貼り付け. (ボタンも貼り付け,ボタンクリックでSQL実行,表示のイメージ) 2,Btn1_Clickに以下コード記述.色々参考にしていたらよく分からない状態になってしまいました... Q.フォームのプロパティでのデザインは必須なんでしょうか? Dim myConnection As New System.Data.OleDb.OleDbConnection(sConnectionString) Dim myCommand As New OleDb.OleDbCommand _ ("select * from データ", myConnection) Dim myReader As OleDb.OleDbDataReader Dim dst As New DataSet("Table") 'DataTable("DataTable") dst.Tables.Add(New DataTable("dst")) Dim dc As DataColumn myConnection.Open() myReader = myCommand.ExecuteReader 'データの読み込み While (myReader.Read) DataGrid1.DataSource = myReader.GetValue(0) End While DataGrid1.SetDataBinding(dst, "dst") myConnection.Close() myConnection = Nothing myReader.Close() myReader = Nothing myCommand = Nothing myConnection.Close() 'データベース閉じる myConnection = Nothing

  • VBAのフォーム上にTextBoxたくさんあるとき

    Microsoft Excel 2013 の VBAのフォーム機能を利用してます。 TextBoxにセルを参照して文字が入ってくるようにしています。、 参照するセルによって文字列の長さが違うので 文字の大きさを自動調整してくれるマクロを使っているのですが TextBoxがいっぱいあるため、以下のように非常に長いプログラムになってしまいました。 Private Sub textBox1_Change() Const InitialFontSize As Double = 40 '初期フォントサイズ Dim BufWidth As Double Dim BufHeight As Double With Me.TextBox1 .Font.Size = InitialFontSize BufWidth = .Width BufHeight = .Height .AutoSize = True While .Width > BufWidth .Font.Size = .Font.Size - 2.5 Wend .AutoSize = False .Width = BufWidth .Height = BufHeight End With End Sub TextBox2~67は繰り返し Private Sub textBox67_Change() Const InitialFontSize As Double = 40 '初期フォントサイズ Dim BufWidth As Double Dim BufHeight As Double With Me.TextBox67 .Font.Size = InitialFontSize BufWidth = .Width BufHeight = .Height .AutoSize = True While .Width > BufWidth .Font.Size = .Font.Size - 2.5 Wend .AutoSize = False .Width = BufWidth .Height = BufHeight End With End Sub 過去の質問等を参考にいろいろ試してみたのですが 自分の力不足でうまくできませんでした。 うまくまとめられるような方法等ありましたらお知恵を拝借できないでしょうか よろしくお願い致します

  • 動的コントロールができない

    フォームをロードしたときに ラベルを動的に貼り付けたいんですが、 Controls.Addの部分でエラーが出てしまって 手が付けれません。 どなたかお助けください。 Dim i As Integer Dim l_week As Label For i = 1 To 6 Set l_week = PN_HEAD.Controls.Add("VB.label", "label" & i) With l_week .Width = CInt(Math.Round(PN_HEAD.Width / 7)) .Height = CInt(Math.Round(PN_HEAD.Height)) .Left = (i Mod 7) * .Width .Top = 0 .Caption = aWeekDayName(i) .Alignment = ContentAlignment.MiddleCenter .Visible = True End With Next

  • VB6.0でのTextboxの高さ変更

    VB6.0を使用しています。 下記のようにテキストボックスを動的配置した際にボックスの高さを変更したいのですが、文字の大きさ等に依存しているよう?で変更できません。 よく似た質問でMultiline をTrueにするような物があり、試してみましたがエラーとなってしまいます。 もう少し小さくしたいのですが何を変更・追加すればよいのでしょうか? どなたかご教授願います。 Private Sub Form_Load() Dim add_tbox As TextBox Set add_tbox = Controls.Add("VB.textbox", "text") With add_tbox .Text = "aaa" .Height = 240 '---テキストボックスの高さ .Left = 2270 .Top = 1700 .Width = 350 .FontSize = 9 '.MultiLine = False ---これを追加するとエラー"値の取得のみ可能なプロパティに値を設定する事はできません" .Visible = True End With MsgBox add_tbox.Height '---テキストボックスの高さ確認(270となっている) End Sub

  • VB2008・DataGridの表示について

    フォーム上にDataGridを設置してsqlcompactで作られたテーブルのデータを表示しようとして 以下のソースを実行すると、エラーになり表示できませんでした。 もし、原因がわかるかたがいらっしゃいましたら教えてくださると助かります。 表示するにあたり、テーブルの特定のカラムだけ表示して、ヘッダーを編集したい。 テーブルの全レコードではなくて対象レコードのみを表示 Dim cn As New System.Data.SqlServerCe.SqlCeConnection Dim SQL As System.Data.SqlServerCe.SqlCeCommand Dim db_sql As String ' テーブルスタイルを生成する Dim dgStyle As DataGridTableStyle = New DataGridTableStyle() dgStyle.MappingName = "表示用テーブル" ' 列スタイルを生成し、プロパティを設定する Dim col(4) As DataGridTextBoxColumn col(0) = New DataGridTextBoxColumn() col(0).HeaderText = "商品コード" col(0).MappingName = "商品コード" col(0).Width = 50 col(1) = New DataGridTextBoxColumn() col(1).HeaderText = "商品名" col(1).MappingName = "商品名" col(1).Width = 100 ' 列スタイルをテーブルスタイルに追加する dgStyle.GridColumnStyles.Add(col(0)) dgStyle.GridColumnStyles.Add(col(1)) ' テーブルスタイルをグリッドに追加する Me.DataGrid_Display.TableStyles.Clear() Me.DataGrid_Display.TableStyles.Add(dgStyle) 'DBのパスをセットしてオブジェクト化 cn.ConnectionString = "Data Source=" & DB_PATH & ";Password=" & DB_PASSWORD & ";Persist Security Info=True;" SQL = cn.CreateCommand 'データグリッドを表示する Dim dbadp As System.Data.SqlServerCe.SqlCeDataAdapter Dim dbtabl As DataTable Dim aa As DataSet db_sql = "SELECT syohinno, syohinryaku, suryo1, suryo2, suryo3 FROM porsj05_tempo ORDER BY date DESC" dbadp = New SqlCeDataAdapter(db_sql, cn) dbtabl = New DataTable dbtabl.Locale = System.Globalization.CultureInfo.InvariantCulture dbadp.Fill(dbtabl) Me.DataGrid_Display.DataSource = dbadp Me.DataGrid_Display.Refresh() エラー箇所 Me.DataGrid_Display.DataSource = dbadp エラー内容 Complex DataBinding は IList または IListSource のどちらかをデータソースとして受け入れます。 'System.ArgumentException' の初回例外が System.Windows.Forms.dll で発生しました。

  • DataGridでエラーになる

    こんにちわ。 現在「Microsoft Visual Basic 2008 Express Edition」と「Microsoft SQL Server 2005」で開発を始めた初心者です。 テーブルの指定範囲のレコードをDataGridに表示したいため、ホームページのサンプルを参考にコーディングしたのですが、 エラーとなってしまいます。 フォームには、ツールボックスから「DataGridView」をドラックして貼り付けてあります。 どうすれば動きますでしょうか?ご教授お願いします。 <エラーの内容> 「'TableStyles'は'System.Windows.Forms.DataGridView'のメンバではありません。」 <参考ホームページ> http://park5.wakwak.com/~weblab/selectRange.html ---------------------------------------------------------------- Imports TESTPG.DbUtil Imports System.Data.OleDb Public Class frm社員マスタ一覧 Inherits System.Windows.Forms.Form Private Sub BTN_検索ボタン_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_検索ボタン.Click '------------------------------------------- ' レコードを取得し、データグリッドに表示する '------------------------------------------- Try 'テーブルスタイルを生成する Dim ts As New DataGridTableStyle() 'マップ名を指定する ts.MappingName = "社員テーブル" '新しい列スタイルの作成 Dim cs(2) As DataGridTextBoxColumn cs(2) = New DataGridTextBoxColumn() 'マップ名を指定する cs(2).MappingName = "Column1" '列ヘッダに表示される文字列 '1列目:社員コード cs(0) = New DataGridTextBoxColumn() cs(0).HeaderText = "コード" cs(0).MappingName = "社員コード" cs(0).Width = 40 cs(0).Alignment = HorizontalAlignment.Center '2列目:社員氏名 cs(1) = New DataGridTextBoxColumn() cs(1).HeaderText = "社員氏名" cs(1).MappingName = "社員氏名" cs(1).Width = 90 cs(1).Alignment = HorizontalAlignment.Left '3列目:社員カナ名 cs(2) = New DataGridTextBoxColumn() cs(2).HeaderText = "社員カナ名" cs(2).MappingName = "社員カナ" cs(2).Width = 130 cs(2).Alignment = HorizontalAlignment.Left '列スタイルをテーブルスタイルに追加する ts.GridColumnStyles.AddRange(cs) 'テーブルスタイルをグリッドに追加する dgrSyain.TableStyles.Clear() ← ここでエラー dgrSyain.TableStyles.Add(ts) ← ここでエラー '************************************* 'SQL文の設定 'データを取得する 'データをバインドする '************************************* Catch oExcept As Exception '例外が発生した時の処理 MessageBox.Show(oExcept.ToString, "例外発生") End Try End Sub End Class

  • wpf datagrid メモリリーク

    wpfのdatagridを利用してデータ表示しております。 1レコードを多段構成で表示するため、ユーザーコントロールにdatagridを配置し、グリッド内に各コントロールを配置する方法で実現しております。 チェックボックスも配置しており、スクロール時に初期化される現象が発生したため、仮想化をOFFにしております。 少ないデータ件数であれば問題ないのですが、大量データ(3500件程度)の場合には メモリリークしてしまいます。 DataGridにチェックボックスを配置した場合の実装で、上記の事象を 改善する方法をご存知の方がいらっしゃいましたらご教授頂けると幸いです。 以下2つが実装しているxamlとなります。 ★Grid_Tab_Roke_Main  ユーザーコントロールにDataGridを配置したものとして実装しています。 <UserControl x:Class="Grid_Tab_Roke_Main" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:_XX_WPF商品管理" mc:Ignorable="d" d:DesignHeight="200.373" d:DesignWidth="300" Height="Auto" Width="Auto"> <DataGrid ItemsSource="{Binding}" VirtualizingStackPanel.IsVirtualizing="False" VirtualizingStackPanel.VirtualizationMode="Standard" EnableColumnVirtualization="False" EnableRowVirtualization="False" ScrollViewer.CanContentScroll="True" ScrollViewer.IsDeferredScrollingEnabled="True" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" HeadersVisibility="None" Margin="0,0,0,0"> <DataGrid.Columns> <DataGridTemplateColumn > <DataGridTemplateColumn.CellTemplate> <DataTemplate> <local:Grid_Tab_Roke_Detail /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </UserControl> ★Grid_Tab_Roke_Detail グリッド内にコントロールを配置しており、データテーブルよりバインドしています。項目は全て数点を抜粋して記載しております。 <UserControl x:Class="Grid_Tab_Roke_Detail" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" Height="70" Width="1227" Background="White" Loaded="UserControl_Loaded"> <Grid> <TextBox x:Name="Text_Roke" Text="{Binding ロケーション名, Mode=OneTime, StringFormat=\{0:N0\}}" HorizontalAlignment="Left" Height="21" Margin="56,22,0,27" TextWrapping="Wrap" VerticalAlignment="Center" Width="181" RenderTransformOrigin="0.406,0.026" Background="{x:Null}" FontFamily="Arial" VerticalContentAlignment="Center" FontWeight="Bold" MaxWidth="200" MinHeight="16" IsHitTestVisible="True" FontSize="16" Foreground="Black"/> <TextBox x:Name="Text_HinCD" Text="{Binding 商品コード, Mode=OneTime, StringFormat=\{0:N0\}}" HorizontalAlignment="Left" Height="21" Margin="242,22,0,27" TextWrapping="Wrap" VerticalAlignment="Center" Width="62" RenderTransformOrigin="0.406,0.026" Background="{x:Null}" FontFamily="Arial" VerticalContentAlignment="Center" FontWeight="Bold" MaxWidth="150" MinHeight="16" IsHitTestVisible="True" FontSize="16" Foreground="Black"/> <CheckBox x:Name="Chk_Sentaku" Content="選択" IsChecked="{Binding IsSelected.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Margin="3,3,0,0" VerticalAlignment="Top" Width="48" Height="65" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" /> <TextBox x:Name="Text_HinNM" Text="{Binding 商品名, Mode=TwoWay, StringFormat=\{0:N0\}}" HorizontalAlignment="Left" Height="21" Margin="304,22,0,27" TextWrapping="Wrap" VerticalAlignment="Center" Width="330" RenderTransformOrigin="0.406,0.026" Background="{x:Null}" FontFamily="Arial" VerticalContentAlignment="Center" FontWeight="Bold" MaxWidth="350" MinHeight="16" IsHitTestVisible="True" FontSize="16" Foreground="Black"/> </Grid> </UserControl>

  • テキストボックスを配置したいのですが

    以下のコードですと、失敗します。 Private Sub CommandButton3_Click() Dim nu7 As MSForms.TextBox Set nu7 = UserForm1.Controls.Add("Forms.TextBox.1", "TextBox1", True) With nu7 .Left = 20 .Top = 50 End With End Sub 間違いをご指摘頂けると、助かります。 どうぞ、宜しくお願い致します。