2017-07-17 11 views
3

トランザクション目的のために、私はwinformsコンポーネントのtextプロパティを置き換えるリソースファイルを作成しました。リソースファイルでDataGridViewColumn.HeaderTextを手動で参照する方法

しかし、リソースファイルでDataGridViewColumn.HeaderTextプロパティを正しく参照できないようです。

DataGridViewColumn.HeaderText = "test1"; 
DataGridViewColumn.HeaderCell.Value = "test2"; 
DataGridView.Columns[1].HeaderText = "test3"; 

コードは、ときに動作しますが、私も試してみた(...それは、他のコンポーネントのために働く)

を私はコード内でのHeaderTextプロパティを変更できますが、ないリソースファイルに私はそれをリソースファイルに入れたときにそれを呼び出すことはできません。

+0

* .resxファイルにC#コードを記述したとしますか? resxファイルに文字列、画像、アイコンなどのリソースを置くだけでよいことは分かっていました。 – RBT

+2

'HeaderText'コードをリソースファイルのテキストに設定することができます。 'DataGridViewColumn.HeaderText = YourApplicationNamespace.Properties.Resources.DataGridViewHeaders.Column1' - ' DataGridViewHeaders'はリソースファイルの名前で、 'Column1'はテキストのキーです – Fabio

+0

私のフォームにlocalize = trueを入れて、他の言語のラベルと私は手動で各言語のラベルごとに更新します(たとえば、左の列にbutton1.textを入れた文字列型、第2列にtraduced値) –

答えて

2

あなたは、あなたがこのような何かを行うことができますローカライズされたテキストを保持するためのサテライトアセンブリを使用している場合:

//namespacaes to be imported at the top of your code file 
using System.Resources; 
using System.Reflection; 

//source code for your method 
ResourceManager resourceManager = new ResourceManager("TestSatelliteAssembly.Resources.LocalizedResources",Assembly.GetExecutingAssembly()); 
DataGridViewColumn.HeaderText = resourceManager.GetString("lblUserNameText"); 

lblUserNameTextはあなたがローカライズしようとしているテキストのためのキーです。 TestSatelliteAssemblyは、サテライトアセンブリの名前です。

私のブログhereで衛星アセンブリの詳細を読むことができます。

+2

ハードコードされたキーStudioはそれらのプロパティを生成し、保守性の良いインテリセンスのヘルプを提供します – Fabio

関連する問題