есть вопрос!!!!!
От: ironblade  
Дата: 12.02.05 20:54
Оценка:
Всем привет!
Вообщем тема такая :
есть comboBox и я указываю в свойсвах DataSource подключить
DataSet с данными по столбцу A, например.
Теперь в comboBox1.Items — появились данные из БД и
по умочанию начальное состояние, т.е comboBox1.Text равно
первому элементу из списка
Допустим, мне надо проверить пустое поле Text или нет —
естественно нет, но я в проге пишу comboBox1.Text="";
ОПА, визуально поменял
теперь пишу if (comboBox1.Text=="" то....
!!! но не проходит !!! ВИЗУАЛЬНО -пуст
НО ЗНАЧЕНИЕ — прежнее
Вот если я в ручную ткну туда и что-либо напишу- то все в порядке, все поманяется...
Вот такая проюлема — подскажите как её решить-то!!!!!
Заранее спасибо!
Как мне
Re: есть вопрос!!!!!
От: Switch Украина  
Дата: 13.02.05 07:53
Оценка:
Здравствуйте, ironblade, Вы писали:

I>Всем привет!

I>Вообщем тема такая :
I>есть comboBox и я указываю в свойсвах DataSource подключить
I>DataSet с данными по столбцу A, например.
I>Теперь в comboBox1.Items — появились данные из БД и
I>по умочанию начальное состояние, т.е comboBox1.Text равно
I>первому элементу из списка
I>Допустим, мне надо проверить пустое поле Text или нет —
I>естественно нет, но я в проге пишу comboBox1.Text="";
I>ОПА, визуально поменял
I>теперь пишу if (comboBox1.Text=="" то....
I>!!! но не проходит !!! ВИЗУАЛЬНО -пуст
I>НО ЗНАЧЕНИЕ — прежнее
I>Вот если я в ручную ткну туда и что-либо напишу- то все в порядке, все поманяется...
I>Вот такая проюлема — подскажите как её решить-то!!!!!
I>Заранее спасибо!


Свойство Text не относиться (напрямую) к модели DataBinding, т.е. через него нельзя изменять или навигациировать по DataSet-е. Попробуй переделать свою модель так что она работа через свойство (SelectedValue).

А изменилось св-во текст потомучто при редактировании вызвалось сообщение WM_TEXTCHANGE — которое завязано на GUI а не на св-ве Text.
Re: есть вопрос!!!!!
От: urdefine Россия  
Дата: 13.02.05 11:48
Оценка:
Здравствуйте, ironblade, Вы писали:

I>Всем привет!

I>Вообщем тема такая :
I>есть comboBox и я указываю в свойсвах DataSource подключить
I>DataSet с данными по столбцу A, например.
I>Теперь в comboBox1.Items — появились данные из БД и
I>по умочанию начальное состояние, т.е comboBox1.Text равно
I>первому элементу из списка
I>Допустим, мне надо проверить пустое поле Text или нет —
I>естественно нет, но я в проге пишу comboBox1.Text="";
I>ОПА, визуально поменял
I>теперь пишу if (comboBox1.Text=="" то....
I>!!! но не проходит !!! ВИЗУАЛЬНО -пуст
I>НО ЗНАЧЕНИЕ — прежнее
I>Вот если я в ручную ткну туда и что-либо напишу- то все в порядке, все поманяется...
I>Вот такая проюлема — подскажите как её решить-то!!!!!
I>Заранее спасибо!
I>Как мне
Обычно я изпользую в таких случаях DataBinding. Для ComboBox'а нужно задать свойства SelectedValue, DisplayMember.
В SelectedValue — идентификатор, в DisplayMember — текст.
В качестве источника к ComboBox'у можно использовать DataView, если требуется сортировка или фильтрация.
Каждый человек стоит столько, сколько стоит то, о чем он хлопочет.(с) Народная мудрость.
Re: есть вопрос!!!!!
От: Аноним  
Дата: 13.02.05 11:59
Оценка:
а можно еще попробовать не через Text, а через Item или Value.
есть вопрос!!!!!
От: Аноним  
Дата: 12.02.05 21:43
Оценка:
>Допустим, мне надо проверить пустое поле Text или нет — ...


— if (comboBox1.Text.Trim=="" ...


>НО ЗНАЧЕНИЕ — прежнее...


— Конечно прежднее, а что ты хотел? Ставь режим DropDown, или обрабатывай KeyUp (имхо)...
Yours faithfully, bbb.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
есть вопрос!!!!!
От: Аноним  
Дата: 12.02.05 22:12
Оценка:
Описался — прежнее
Yours faithfully, bbb.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: есть вопрос!!!!!
От: Аноним  
Дата: 13.02.05 09:58
Оценка:
>Свойство Text не относиться (напрямую) к модели DataBinding, т.е. через него нельзя изменять или навигациировать по DataSet-е.

Это свойство напрямую относится DataBinding, все зависит от того, как именно устанавливается binding и в каком режиме (DropDownStyle) находится ComboBox:
using System;
using System.Windows.Forms;
using System.Data;
class MyForm: Form
{
 const string TABLE_CITY = "city";
 const string COL_CITY_ID = "id";
 const string COL_CITY_NAME = "name";
 public MyForm()
 {
  DataTable sourceTable = CreateDataTable();
  DataGrid dgDemo = new DataGrid();
  dgDemo.DataSource = sourceTable;
  dgDemo.Height = ClientRectangle.Height / 2;
  dgDemo.Dock = DockStyle.Top;
  ComboBox cbDemo = new ComboBox();
  cbDemo.DataBindings.Add("Text", sourceTable, COL_CITY_NAME);
  cbDemo.Items.AddRange(new object[]{"one", "two", "three"});
  cbDemo.Top = dgDemo.Bottom;
  Controls.AddRange(new Control[]{dgDemo, cbDemo});
 }
    
 DataTable CreateDataTable()
 {
  DataTable tableCity = new DataTable(TABLE_CITY);
  tableCity.Columns.AddRange(new DataColumn[]{new DataColumn(COL_CITY_ID, typeof(int)), 
                new DataColumn(COL_CITY_NAME)});
  
  tableCity.Rows.Add(new object[]{0, "My City"});
  tableCity.Rows.Add(new object[]{1, "Your City"});
  
  return tableCity;
 }
 static void Main()
 {
  Application.Run(new MyForm());
 }
}




данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.