Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите переопределить метод для выделения целой строки в гриде! / 8 сообщений из 8, страница 1 из 1
08.12.2004, 13:40
    #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
08.12.2004, 13:50
    #32818682
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переопределить метод для выделения целой строки в гриде!
С первой ошибкой разобрался. If - if.
...
Рейтинг: 0 / 0
08.12.2004, 13:55
    #32818695
Один1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переопределить метод для выделения целой строки в гриде!
...
Рейтинг: 0 / 0
08.12.2004, 14:03
    #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
08.12.2004, 14:13
    #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
08.12.2004, 14:21
    #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
08.12.2004, 15:03
    #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
08.12.2004, 15:16
    #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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите переопределить метод для выделения целой строки в гриде! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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