0

まず第一に、私はこの質問を見たことを言及しなければなりませんが、問題を解決するのに役立ちませんでした.

以前の質問によるとDataGridView、XML ファイルに保存しました。次にDataGridView、XML ファイルに保存されているデータを使用して、ウィンドウ フォームをロードするときに入力します。

ComboBox私の問題は、保存されたデータに基づいて一方の値を設定したい場合、もう一方ComboBoxの値も変化することです。ComboBoxそれぞれの値を個別に設定したい。

私のコードは次のとおりです。

private void WindowSelection_Load(object sender, EventArgs e)
        {
            dataGridSource = DeserializeFromXML();
            foreach (WindowHolder obj in dataGridSource)
            {
                int index = dataGridViewWindowSelection.Rows.Add();

                DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn();
                combo2 = (DataGridViewComboBoxColumn)dataGridViewWindowSelection.Rows[index].Cells["Reader"].OwningColumn;
                combo2.DataSource = readerSource;

                int readerSourceIndex = findReaderSourceIndex(obj.reader);
                if (readerSourceIndex != -1)
                {
                    combo2.DefaultCellStyle.NullValue = readerSource[readerSourceIndex];
                }
                else
                {
                    combo2.DefaultCellStyle.NullValue = readerSource[0];
                }

                dataGridViewWindowSelection.Rows[index].Cells["Location"].Value = obj.location;
                dataGridViewWindowSelection.Rows[index].Cells["AlwaysOnTop"].Value = obj.alwaysOnTop;
                dataGridViewWindowSelection.Rows[index].Cells["AlwaysShow"].Value = obj.alwaysShow;     
            }

        }
4

1 に答える 1

0

変更している行を意味しますcombo2.DefaultCellStyleか?

これcombo2.DefaultCellStyleは、 がすべてのコンボの既定のセル スタイルへの参照であるため、この 1 つのコンボを変更しているのではなく、共通の既定のスタイルを変更しているために発生します。

このコンボのスタイルをデフォルトのもの (および他のコンボのスタイル) とは異なるものにしたい場合は、おそらく別のスタイルを作成し、それをコンボ 2 のスタイルとして設定する必要があります。

ステートメントは次のようになるはずcombo2.DefaultCellStyle = ...ですcombo2.SetDefaultCellStyle( ... )

于 2012-01-05T06:33:49.397 に答える