powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите переопределить метод для выделения целой строки в гриде!
8 сообщений из 8, страница 1 из 1
Помогите переопределить метод для выделения целой строки в гриде!
    #32818654
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я откопал в форуме по VB.NET

Sa тут просветил как переопределить метод класса DataGridTextBoxColumn для выделения целой строки по человечески.

Вот... огрызок топика.

У меня тут что то стопор при написании этого метода на шарпе


Это на VB.NET


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Public Class MyDataGridTextBoxColumn

Inherits DataGridTextBoxColumn

Private SelectedRow As Integer

Public Sub New()

End Sub

Protected Overloads Overrides Sub Edit(ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal bounds As Rectangle, ByVal [readOnly] As Boolean, ByVal instantText As String, ByVal cellIsVisible As Boolean)

If (SelectedRow > -1) And (SelectedRow < source.List.Count + 1) Then

Me.DataGridTableStyle.DataGrid.UnSelect(SelectedRow)

End If

SelectedRow = rowNum

Me.DataGridTableStyle.DataGrid.Select(SelectedRow)

End Sub

End Class




Вот что я смонтировал на шарпе

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public class MyDataGridTextBoxColumn: DataGridTextBoxColumn
	{
		int SelectedRow;

		public MyDataGridTextBoxColumn()
		{
			
		}

		protected  override void Edit(CurrencyManager source, int rowNum,                             Rectangle bounds,  string instantText, bool cellIsVisible)
		{
			If ((SelectedRow > -1) && (SelectedRow < source.List.Count + 1))
																	
				this.DataGridTableStyle.DataGrid.UnSelect(SelectedRow);

			SelectedRow = rowNum;
			this.DataGridTableStyle.DataGrid.Select(SelectedRow);


		}


	}



Выдает две ошибки.
Не хватает ; после if

и это

MyDataGridTextBoxColumn.edit(System.Windows.Forms.CurrencyManager, int, System.Drawing.Rectangle, string, bool)': no suitable method found to override

На васике стояло это в сигнатуре - ByVal [readOnly] As Boolean , а как на шарпе?
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818682
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С первой ошибкой разобрался. If - if.
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818695
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818715
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один1 http://www.google.com/search?sourceid=navclient&ie=UTF-8&q=VB+%2D+C%23+converter

Ух , конвертер что ли уже есть???

Вроде больше ошибок не вылезает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public class MyDataGridTextBoxColumn: DataGridTextBoxColumn
	{

		int SelectedRow;

		public MyDataGridTextBoxColumn()
		{
			
		}

		protected  override void Edit(CurrencyManager source, 
			int rowNum,Rectangle bounds, bool readOnly, string instantText, bool cellIsVisible)
		
		{

			if ((SelectedRow > -1) && (SelectedRow < source.List.Count + 1))
																	
				this.DataGridTableStyle.DataGrid.UnSelect(SelectedRow);

		           	SelectedRow = rowNum;
			            this.DataGridTableStyle.DataGrid.Select(SelectedRow);


		}






	}


Как теперь мой грид поставить в известность?
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818744
The RW_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
public class My3DataGridTextBoxColumn : DataGridTextBoxColumn
{
protected override void Paint(System.Drawing.Graphics g, System.Drawing.Rectangle bounds,
System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush foreBrush, bool alignToRight)
{
object bVal = GetColumnValueAtRow(source, rowNum);

// if the current row is this row, draw the selection back color
if (this.DataGridTableStyle.DataGrid.CurrentRowIndex == rowNum)
{

g.FillRectangle(new SolidBrush(this.DataGridTableStyle.SelectionBackColor), bounds);
g.DrawString(Convert.ToString(bVal), this.DataGridTableStyle.DataGrid.Font,
new SolidBrush(this.DataGridTableStyle.SelectionForeColor), bounds.X + 2, bounds.Y + 2);

}
else
{
g.FillRectangle(new SolidBrush(Color.LightCoral), bounds);
g.FillRectangle(backBrush, bounds);
g.DrawString(Convert.ToString(bVal), this.DataGridTableStyle.DataGrid.Font, foreBrush,
bounds.X + 2, bounds.Y + 2);
}
}


а потом в основном классе (например формы где находится грид) :
private My3DataGridTextBoxColumn dataGridTextBoxColumn1;
private My3DataGridTextBoxColumn dataGridTextBoxColumn2;
private My3DataGridTextBoxColumn dataGridTextBoxColumn3;
и т.д. т.е. каждый столбец в гриде
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818768
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The RW_public class My3DataGridTextBoxColumn : DataGridTextBoxColumn
{
protected override void Paint(System.Drawing.Graphics g, System.Drawing.Rectangle bounds,
System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush foreBrush, bool alignToRight)
{
object bVal = GetColumnValueAtRow(source, rowNum);

// if the current row is this row, draw the selection back color
if (this.DataGridTableStyle.DataGrid.CurrentRowIndex == rowNum)
{

g.FillRectangle(new SolidBrush(this.DataGridTableStyle.SelectionBackColor), bounds);
g.DrawString(Convert.ToString(bVal), this.DataGridTableStyle.DataGrid.Font,
new SolidBrush(this.DataGridTableStyle.SelectionForeColor), bounds.X + 2, bounds.Y + 2);

}
else
{
g.FillRectangle(new SolidBrush(Color.LightCoral), bounds);
g.FillRectangle(backBrush, bounds);
g.DrawString(Convert.ToString(bVal), this.DataGridTableStyle.DataGrid.Font, foreBrush,
bounds.X + 2, bounds.Y + 2);
}
}


а потом в основном классе (например формы где находится грид) :
private My3DataGridTextBoxColumn dataGridTextBoxColumn1;
private My3DataGridTextBoxColumn dataGridTextBoxColumn2;
private My3DataGridTextBoxColumn dataGridTextBoxColumn3;
и т.д. т.е. каждый столбец в гриде

А это у тебя что за переопределение? 3D строки что ли? Здорово.

А если я хочу и твой пример заколбасить и пример выделения Sa ?

Ясно с объявлением в форме.

Но дело в том, что TableStyle для грида у меня сделан не ручками , а визардом.

Как мне обратится к стилю , который называется Style1 моего грида и подменить столбцы?
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818891
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объявил в форме




Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        private MyDataGridTextBoxColumn m0 ; 
        private MyDataGridTextBoxColumn m1 ; 
        private MyDataGridTextBoxColumn m2 ; 
        private MyDataGridTextBoxColumn m3 ; 
        private MyDataGridTextBoxColumn m4 ; 
        private MyDataGridTextBoxColumn m5 ; 



К 1 столбцу моего стиля грида можно обратится типа этого

this.dataGrid1.TableStyles[0].GridColumnStyles[0]

Как теперь как сделать ссылку на объект производного класса. Чтобы m0 теперь стал частью моего TableStyle ?
...
Рейтинг: 0 / 0
Помогите переопределить метод для выделения целой строки в гриде!
    #32818940
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eternal Один1 http://www.google.com/search?sourceid=navclient&ie=UTF-8&q=VB+%2D+C%23+converter

Ух , конвертер что ли уже есть???
И не один. А очень много. И online и отдельными приложениями. И с C# на VB.Net они тоже умеют.
Правда не всегда корректно работают
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите переопределить метод для выделения целой строки в гриде!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]