Ответы пользователя по тегу C#
  • C# Windows Forms. Передача данных между формами, как?

    vvovas
    @vvovas
    Судя по всему вам нужно сделать следующее:
    //событие для открытия новой формы
    private void searchButton_click(object sender, EventArgs args){
    
    using(var searchForm = new SearchForm()){
    
    //передаем все что нужно на новую форму
    searchForm.Text = richTextBox1.Text;
    
    //показываем форму
    searchForm.ShowDialog();
    
    }
    
    }


    Ну и ваша новая форма должна иметь публичное свойство Text:
    public class SearchForm : Form{
    public string Text {get;set;}
    ...
    }


    Если же нужно получить данные с дочерней формы, то опять добавляем публичное свойство, с которым будем работать и используем его после ShowDialog()
    Ответ написан
    Комментировать
  • C# - Как присвоить переменной определенному месту в предложении?

    vvovas
    @vvovas
    line.Split(' ') - разделит вашу строку на слова и вернет массив слов. Дальше работайте с ним.
    Ответ написан
    1 комментарий
  • Как правильно передать массив как параметр в SQL запрос?

    vvovas
    @vvovas
    Думаю через xml параметр будет самым простым способом. В процедуре сделаете join.

    что-то типа:
    create procedure p(
    	@ids xml
    )
    begin
    	select name 
    	from 
    		dbo.table 
    		inner join @ids.nodes('/items/item') root(items) 
    			on id = items.value('(text())[1]', 'int')
    end


    в примере xml будет иметь вид
    <items>
    	<item>1</item>
    	...
    	<item>1000</item>
    </items>
    Ответ написан
    Комментировать
  • Как создать точку входа MVP?

    vvovas
    @vvovas
    Есть разные варианты. Я, например, использую следующий подход:
    1. Есть view, которая не знает ни о чем. Умеет только показывать данные. Обычно имеет интерфейс описывающий все свойства, которые можно отобразить в этой view.
    2. Есть presenter, который знает о IView(интерфейсе view) и использует его, чтобы передать данные для отображения.
    3. Обратная передача информации, т.е. реакция на что-то что происходит на форме осуществляется через события. Т.е. view кидает событие и ей без разницы, кто его поймает. Presenter следит за событиями и что-то делает с моделью, а потом передает новые данные через интерфейс обратно во view, если нужно.

    Что касается точки входа, то в моем варианте создается view и presenter,которому эта view передается. view кладется на форму и все. Когда view передали presenter'у он ее заполнил данными и подписался на события.
    Ответ написан
    4 комментария
  • Как реализовать скелетную модель?

    vvovas
    @vvovas
    Не специалист, но в голову пришла следующая мысль: храните дерево костей, каждая кость имеет длину и направление.
    Двигаете кость А, кости наследники автоматом будут двигаться, так как не привязаны к конкретным координатам, а привязаны только к родительской кости.
    Отрисовывать пробегом по костям и просчетом положения.
    Ответ написан
  • Возможна ли частичная десериализация?

    vvovas
    @vvovas
    Все зависит от того, чем сериализуете.
    Как минимум в xmlSerializer есть аттрибут xmlignore, который можно применить к свойству класса и это свойство не будет десериализоваться.
    Чтобы считать данные потом, можно создать еще один класс с единственным свойством, соответствующим массиву, и десериализовать этот объект.

    что-то типа:
    class FullIObject{
        //some properties
       
        [XmlIgnore]
        public byte[] Data{get;set;}
    }
    
    class DataArray{
        public byte[] Data{get;set;}
    }
    Ответ написан